douqu2481 2014-08-26 07:28
浏览 140

如何将数组中的两个变量保存为键和值[PHP]

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.

展开全部

  • 写回答

1条回答 默认 最新

  • dongqiao1158 2014-08-26 07:32
    关注

    You are initializing the $mdUrl array again and again on each loop. I guess you wanted to initialize it above the foreach loop.

    评论
    编辑
    预览

    报告相同问题?

    手机看
    程序员都在用的中文IT技术交流社区

    程序员都在用的中文IT技术交流社区

    专业的中文 IT 技术社区,与千万技术人共成长

    专业的中文 IT 技术社区,与千万技术人共成长

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

    客服 返回
    顶部