注意:{Error}中的数组到字符串转换


Notice: Array to string conversion in {Error}

我必须创建一个目录并保存文件,但在标题中写入了一个错误。帮助我解决这个错误。我的代码在下面。

  function main() {
      $scrapper = new Cloaked_Scraper();
      // Prefix of URL's
      $url_prefix = "link";
      // URL
      $urls = array("www.something.com?");
      // Get ID from every URL and will save on index one of $url array
      $urls[1] = ((explode("www.something.com?id=com.", $urls[0])));
      $urls[0] = $url_prefix;
      $urls[0];
      $urls[1];

      //mkdir("../temp/", 0777 /* The mode is 0777 by default, which means the widest possible access */);
      // Destination folder where this file will save, and file name.
      $output_dir[0] = "../temp/".$urls[0].$urls[1].".html";
      $results = $scrapper->fetch($urls, $output_dir);
      var_dump($results);
    }
    main();

我不知道Cloaked_Scraper是什么,但它的fetch方法似乎只接受字符串作为它的第一个或第二个参数。您将一个数组传递给它们两个。

我认为$output_dir需要是一个普通字符串,但通过分配给$output_dir[0],可以隐式地使其成为一个数组。

把这行改成这个,看看会发生什么:

$output_dir = "../temp/".$urls[0].$urls[1].".html";

但总的来说,我认为您的代码非常混乱。看起来您正在回收$urls数组的项,而实际上您应该使用单独的变量。

$urls[1] = ((explode("www.something.com?id=com.", $urls[0])));

将字符串分解为字符串数组,详细地说,$urls[1]包含:array( '', 'id=com');

您现在尝试将此数组作为此行插入:

$output_dir[0] = "../temp/".$urls[0].$urls[1].".html";

只需使用字符串的正确索引:

$output_dir[0] = "../temp/".$urls[0].$urls[1][0].".html";