【问题标题】:Warning: Invalid argument supplied for foreach() in line 6 [closed]警告:第 6 行中为 foreach() 提供的参数无效 [关闭]
【发布时间】:2014-11-11 03:02:09
【问题描述】:

我试图显示带有行号的源代码。 但我得到了

警告:在第 6 行为 foreach() 提供的参数无效

$lines= file_get_contents("http://sitename.com");

foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}

【问题讨论】:

  • 只是猜测$lines = json_decode($lines);
  • 您是否在 $lines 中获取数据。做一个 print_r
  • $lines 既不是对象也不是数组,因此您不能使用 foreach 对其进行迭代。正确转换它。如果您不知道里面是什么,请使用var_dump($lines)
  • if(is_array($lines)){foreach($lines as $line_num => $line){//你的逻辑}} 添加检查 $line 是否为数组
  • file_get_contents 将文件读入string,而不是array

标签: php foreach


【解决方案1】:

file_get_contents 返回一个字符串,而不是一个可迭代的,例如,您必须先将其转换为数组。

<?php
$lines= file_get_contents("http://sitename.com");
$lines = explode("\n", $lines);

foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}

?>

【讨论】:

  • 谢谢它完美的工作
猜你喜欢
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 2018-11-29
  • 1970-01-01
相关资源
最近更新 更多