【问题标题】:Php foreach echo (if/else) [duplicate]Php foreach 回声(如果/否则)[重复]
【发布时间】:2017-11-20 11:27:49
【问题描述】:

正确输入时会在屏幕上打印,但输入错误时我不想做任何事情

我该怎么做?

<?php
header('Content-type: text/html; charset=utf8');

$api_key = 'local';
$keyword = 'test';

$url = 'test.json' . $api_key . '&' .'keyword' .'=' . $GLOBALS['q'] ;

$open = file_get_contents($url);
$data = json_decode($open, true);

$istatistikler = $data['data'];
if ($data) {
foreach ( $istatistikler as $istatistik ){

    echo '<div class="right">';
    echo 'Oyun modu: ' . $istatistik['title'] . '<br />' .
    'Kazanma: ' . $istatistik['content'] . '<br />' .
    'Kazanma: ' . $istatistik['image'] . '<br />' .
    'Kazanma: ' . $istatistik['category'] . '<br />' .
    '<br />' .
    '<hr/>';
 $karakter_simge = 'http://google.com' . $istatistik['image'] . '';
 echo "<img src=".$karakter_simge." >" ;
 echo '</div>';
 }
  }
?>

Successful output

输出失败

警告: 文件获取内容(http://localhost/api/detail?X-Api-Key=local&keyword=a): 无法打开流:HTTP 请求失败! HTTP/1.1 406 不是 在线/opt/lampp/htdocs/weather-master/php/php-api.php 中可接受 10

“我不想打印失败”

感谢您的帮助!

【问题讨论】:

  • 是的,我不想看到
  • 您应该在您的 PHP 配置级别执行此操作。禁用错误显示,这是最佳实践。您应该检查您的日志是否有错误。
  • 非常感谢您的回复!

标签: php json api if-statement foreach


【解决方案1】:

这可能会有所帮助:

$open = @file_get_contents($url);

@ 在函数名前签名(在调用中)可防止显示任何警告(虽然这是一种不好的做法)。

祝你好运!

【讨论】:

  • 非常感谢您的回复!
【解决方案2】:

改变

$open = file_get_contents($url);

进入

$open = @file_get_contents($url);
if ($open === false)
    die("wrong");

@ 禁止显示错误消息。使用die() 将使用给定的消息完全中止脚本。

或者,将条件更改为 !== false 并将其余“成功”代码包装在其主体中:

$open = @file_get_contents($url);
if ($open !== false)
{
    $data = json_decode...
    ...
    ...
}

我想我在这里稍微超出了目标,但即使没有遇到没有数据就无法正常工作的代码也不是一个坏主意。

【讨论】:

  • 非常感谢您的回复,问题已解决!