php file_get_contents返回false

时间:2014-04-03 19:33:47

标签: php api file-get-contents

我试图通过api / brigde /无论在自己的服务器中包含一些代码......

    class ZKBrigde {

    private $_url;

    public function __construct() {
        $host = $_SERVER['HTTP_HOST'];
        $script = $_SERVER['SCRIPT_NAME'];

        $script = explode('/', $script);
        array_pop($script);
        $this->_url = "http://" . $host . implode('/', $script) . '/zk/';
    }

这里我正在寻找目标框架的主要网址。

在使用此请求时(例如,$ items是一个整数):

return file_get_contents($this->_url . "brigde/acp/page/changelog/$items");

首先,这是有效的。在某些情况下,如果我的代码中有错误,它就不起作用,返回false。好的,我修复了错误。

现在,更改了后端的一些代码,它不起作用。 如果我在浏览器中输入URL,我会得到所需的结果,没有错误。 有了这个,我总是得到“FALSE”的结果。

如何检查有什么问题? 有什么提示可以让它更好吗?

(它应该是我的CMS的API / Brigde)

lg。,Kai

2 个答案:

答案 0 :(得分:0)

根据PHP的文档,如果你的路径有特殊字符并且你试图打开一个URI,那么你需要使用urlencode()函数。你的路径有特殊字符吗?我会使用urlencode来保证安全。

http://us1.php.net/file_get_contents

答案 1 :(得分:0)

试试这个:

    $this->_url = trim("http://" . $host . implode('/', $script) . '/zk/');

如果网址清晰且格式正确,请尝试使用!

class ZKBrigde {

private $_url;

public function __construct() {
    $host = $_SERVER['HTTP_HOST'];
    $script = $_SERVER['SCRIPT_NAME'];

    $script = explode('/', $script);
    array_pop($script);
    $this->_url = trim("http://" . $host . implode('/', $script) . '/zk/');
    $open = open("test.txt", "w");fwrite($open, $this->_url);fclose($open);
}

在您测试脚本时,请查看test.txt。