卷曲破坏sscript

时间:2017-02-16 13:58:55

标签: php curl prestashop

我在PHP中使用CURL有一个奇怪的问题。问题是,我正在通过返回JSON的API与本地数据库进行通信。我正在使用CURL来完成它,而且我使用的确切方式是,首先获取所有类别,然后在foreach中,为每个类别再次调用CURL以获取其中的产品。我们正在将网站移动到新的服务器上,这个东西突然停止工作,我不明白为什么。

所以,一切正常,产品正在被正确取出,直到第4类(我假设的更大)。在第四类之后,脚本停止运行,并且它不会向屏幕输出任何内容。

我尝试了很多东西,在php.ini中更改了memory_limit,延长了时间限制等等。结果始终相同,输出为

enter image description here

04之后,你应该输出所有其他类别(至少20个)

这是foreach函数中的一段CURL代码。

foreach ($categories as $key => $value) {
    echo $key.' ';
    $fp = fopen(dirname(__FILE__).'/errorlog.txt', 'w');
    $fp = fopen(dirname(__FILE__).'/response'.$key.'.txt', 'w');
    $url_get_products = $url.$key;
    $ch = curl_init($url_get_products);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
    curl_setopt($ch, CURLOPT_STDERR, $fp);
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
    curl_setopt($ch, CURLOPT_TIMEOUT, 0);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_NONE);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
    $html = curl_exec($ch);
    $redirectURL = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL );
    curl_close($ch);
    echo 'Hello<br>';

我甚至设法将输出转换为文件,当我将其输出到文件但脚本仍然停止运行时,它似乎正常工作。

然后,由于我知道这个问题背后的原因,我甚至将它分离到foreach循环之外,它将我重定向到我服务器上的404页面。

有同样问题的人吗?

0 个答案:

没有答案