extract_from_markers( string $filename, string $marker, bool $is_regex = false )
Extracts strings from between the BEGIN and END markers in the .htaccess file.
Parameters
- $filename
-
(Required) Filename to extract the strings from.
- $marker
-
(Required) The marker to extract the strings from.
- $is_regex
-
(Optional) Set to 'true' if $marker is a regex. The regex delimiter is '/'; you must escape this character if it occurs in your marker pattern. Default 'false'.
Default value: false
Return
(string[]) An array of strings from a file (.htaccess) from between BEGIN and END markers.
Source
File: wp-admin/includes/misc.php
function extract_from_markers( $filename, $marker, $is_regex = false ) {
$result = array();
if ( ! file_exists( $filename ) ) {
return $result;
}
$start_marker = "# BEGIN {$marker}";
$end_marker = "# END {$marker}";
if ( ! $is_regex ) {
$start_marker = preg_quote( $start_marker, '/' );
$end_marker = preg_quote( $end_marker, '/' );
}
$start_marker = "/{$start_marker}/";
$end_marker = "/{$end_marker}/";
$file_data = explode( "\n", implode( '', file( $filename ) ) );
$inside_markers = false;
foreach ( $file_data as $line ) {
if ( preg_match( $end_marker, $line ) ) {
$inside_markers = false;
}
if ( $inside_markers ) {
$result[] = $line;
}
if ( preg_match( $start_marker, $line ) ) {
$inside_markers = true;
}
}
return $result;
}
Changelog
Version | Description |
---|---|
1.5.0 | |
CP-1.0.0 Added $is_regex parameter. | Introduced. CP-1.0.0 Added $is_regex parameter. |