WordPress Version: 5.4
/**
* Extracts strings from between the BEGIN and END markers in the .htaccess file.
*
* @since 1.5.0
*
* @param string $filename Filename to extract the strings from.
* @param string $marker The marker to extract the strings from.
* @return string[] An array of strings from a file (.htaccess) from between BEGIN and END markers.
*/
function extract_from_markers($filename, $marker)
{
$result = array();
if (!file_exists($filename)) {
return $result;
}
$markerdata = explode("\n", implode('', file($filename)));
$state = false;
foreach ($markerdata as $markerline) {
if (false !== strpos($markerline, '# END ' . $marker)) {
$state = false;
}
if ($state) {
if ('#' === substr($markerline, 0, 1)) {
continue;
}
$result[] = $markerline;
}
if (false !== strpos($markerline, '# BEGIN ' . $marker)) {
$state = true;
}
}
return $result;
}