I'm currently writing a script that searches for .md files and extracts a string out of it but I'm running into problems concerning saving this string in an array.
Here is the code I'm using:
$flags = \FilesystemIterator::SKIP_DOTS;
$iterator = new \RecursiveDirectoryIterator($userContent, $flags);
$iterator = new \RecursiveIteratorIterator($iterator, \RecursiveIteratorIterator::SELF_FIRST);
foreach ($iterator as $v) {
$checkFiles = strpos($v, ".md");
$url = array();
if (!$checkFiles == '') {
$mdFile = $v;
$mdContent = file_get_contents($mdFile);
$mdBreak = strpos($mdContent, "url: ");
$mdContent = substr($mdContent, $mdBreak + 5);
$mdBreak = strpos($mdContent, "
");
$mdUrl = substr($mdContent, 0, $mdBreak);
echo $mdUrl . ' => ' . $mdFile;
echo '<br>';
$url[$mdUrl] = $mdFile;
}
}
The script succeeds in finding the .md files and also succeeds in finding the url: custom-url
inside those documents.
Furthermore echo $mdUrl . ' => ' . $mdFile;
returns custom-url => /content/default.md
but apparently saving the url as key and the path as value does not work as print_r($url)
returns Array ( [url-test ] => SplFileInfo Object ( [pathName:SplFileInfo:private] => /content/default.md [fileName:SplFileInfo:private] => default.md ) )
Could someone tell me what I did wrong and maybe help with fixing the script?
EDIT: Apparently it was a problem of the variable I tried to set as value.
As soon as I replaced $mdFile = $v
with $mdFile = (string)$v;
it worked.