【发布时间】:2014-06-15 20:44:56
【问题描述】:
当没有任何结果时,会出现以下两个错误:
- 中的非法字符串偏移“艺术家”
- 为 foreach() 提供的参数无效
下面的代码匹配用户搜索的结果,并通过 last.fm API 返回信息,执行此操作的代码位于不同的文件中,不会导致问题。
当没有搜索结果并且 foreach 循环尝试没有数据时会出现问题。需要的是某种错误捕获,而我尝试过的任何方法都没有奏效。
由于它是一个 foreach 循环,因此 try,catch 语句似乎不起作用。
if(!isset($json['results']['artistmatches']['artist'][0]))
{
echo '<div class="alert alert-danger">Artists Not Found</div>';
}
else
{
foreach ($json['results']['artistmatches']['artist'] as $track)
{
$artist = $track['name'];
$image = $track['image'][3]['#text'];
$url = preg_replace("/ /s","_" , $artist);
if($artist&&$image)
{
include('./artist_short.php');
}
}
}
【问题讨论】:
-
不是重复的,在这个问题上我确实尝试过这种方法,但是我没有包含某些数组字段。
-
另一种是通用解决方案,我尝试过但没有奏效;因此,我按照应有的方式使用了这个网站,询问社区是否知道解决方案。正如您在解决方案中看到的那样,我不会想到将结果和艺术家匹配而不是艺术家添加到 is_array 语句中,因此这就是它不同的原因。
-
当我尝试使用该解决方案但它不起作用时,我询问了提供对我有用的解决方案的社区,允许它使用相同的 is_array 函数,但这就是相似之处。请不要对此感到生气,但我觉得您的目的是贬低他人,并且您认为我是那种如果可以的话会禁止我访问该网站的人。我寻求帮助,当我找不到其他解决方案时,我得到了帮助。
-
我又发帖讨论了
标签: php error-handling warnings