PHP 8.2.31
Preview: PathParser.php Size: 1.37 KB
/home/nshryvcy/radiantskinclinics.org/wp-content/plugins/wpforms-lite/src/Helpers/PathParser.php

<?php

namespace WPForms\Helpers;

/**
 * Helper to handle folder path parsing and processing.
 *
 * @since 1.10.0
 */
class PathParser {

	/**
	 * Split the folder path by "/" while preserving smart tags intact.
	 *
	 * Smart tags like {entry_date format="d/m/Y"} contain "/" in attributes
	 * which should not be treated as path separators.
	 *
	 * Examples:
	 * - /uploads/wpforms/tmp
	 * - /uploads/wpforms/{date format="d/m/Y"}
	 * - /uploads/wpforms/{entry_date format="d-m-Y"}
	 *
	 * @since 1.10.0
	 *
	 * @param string $folder_path Folder path with forward slashes.
	 *
	 * @return array Array of folder path parts with smart tags preserved.
	 */
	public static function split_folder( string $folder_path ): array {

		$parts         = [];
		$current_part  = '';
		$inside_braces = 0;
		$length        = strlen( $folder_path );

		for ( $i = 0; $i < $length; $i++ ) {
			$char = $folder_path[ $i ];

			if ( $char === '{' ) {
				++$inside_braces;
			} elseif ( $char === '}' ) {
				--$inside_braces;
			}

			if ( $char === '/' && $inside_braces === 0 ) {
				$trimmed = trim( $current_part );

				if ( ! wpforms_is_empty_string( $trimmed ) ) {
					$parts[] = $trimmed;
				}

				$current_part = '';

				continue;
			}

			$current_part .= $char;
		}

		$trimmed = trim( $current_part );

		if ( ! wpforms_is_empty_string( $trimmed ) ) {
			$parts[] = $trimmed;
		}

		return $parts;
	}
}

Directory Contents

Dirs: 0 × Files: 10

Name Size Perms Modified Actions
11.06 KB lrw-r--r-- 2025-12-11 20:10:08
Edit Download
8.30 KB lrw-r--r-- 2024-09-26 15:36:36
Edit Download
2.86 KB lrw-r--r-- 2025-04-24 14:53:30
Edit Download
6.59 KB lrw-r--r-- 2024-09-26 15:36:36
Edit Download
8.27 KB lrw-r--r-- 2025-08-11 13:38:06
Edit Download
1.88 KB lrw-r--r-- 2026-05-28 15:16:52
Edit Download
1.37 KB lrw-r--r-- 2026-03-19 16:20:18
Edit Download
23.29 KB lrw-r--r-- 2024-09-26 15:36:36
Edit Download
6.26 KB lrw-r--r-- 2024-04-23 14:43:10
Edit Download
7.34 KB lrw-r--r-- 2024-09-26 15:36:36
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).