PHP函数不可浏览

时间:2015-06-18 14:22:12

标签: php

我正在尝试使用JSON输出构建API,第二个函数正在生成所需的输出,但我无法从Web调用它。而第一个函数按预期返回大量文本。我使用不兼容的东西吗?我在Ubuntu 14.04服务器上使用的是PHP 5.5.9版本。

我可以在终端和浏览器中查看此功能的结果;

<?php
class ArticlesAPI {
        function top() {
                $db = new  mysqli("mysql-host.rds.amazonaws.com", "user", "password", "db_name");
                $results = $db->query("SELECT article_id, title, summary FROM top_articles");

        while ($row = $results->fetch_assoc()) {
            echo $row['article_id'];
            echo $row['title'];
            echo $row['summary'];
        }
        $results->close();
    }
}
$api = new ArticlesAPI;
$api->top();
?>

此功能仅在终端中返回结果;

<?php
class ArticleAPI {
        function top() {
                $db = new  mysqli("mysql-host.rds.amazonaws.com", "user", "password", "db_name");
                $results = $db->query("SELECT article_id, title, summary  FROM top_articles");

                $articles = array();
                while($article = $results->fetch_assoc()){
                        $article_id = $article['article_id'];
                        $articles[$article_id][] = $article['title'];
                        $articles[$article_id][] = $article['summary'];

                }
                $results->close();
                $db->close();
                $json = json_encode($articles);
                echo $json;
        }
}
$api = new ArticleAPI;
$api->top();
?>

1 个答案:

答案 0 :(得分:2)

  1. 有两个单独的配置文件用于CLI和WEB检查它们并检查服务器配置(如果http服务器解析php文件等)你可以做简单<?php echo 'hello world';并查看输出是否正确。如果你通过浏览器打开它,你看到的不仅仅是hello world,那么PHP解析器就没有启用。
  2. 此外,当您输出JSON时,您应该为浏览器application/json
  3. 设置正确的标头
  4. 检查输出缓冲设置。也许您使用ob_ *函数并且不要将输出刷新到browswer
  5. 尝试在回显之后放置exit并在之后检查脚本。
  6. 在应用的第一行设置error_reporting(E_ALL);ini_set('display_errors', 1);,以检查是否有错误。