【发布时间】:2016-12-07 21:17:25
【问题描述】:
我有这个代码:
<?php
header('Content-Type: text/html; charset=utf-8');
error_reporting(E_ERROR | E_WARNING | E_PARSE & ~E_NOTICE);
$uarray = json_decode($_POST['array']);
$uac = $uarray;
$res = $uarray;
function request_callback($response, $info, $request) {
global $uac;
global $res;
$index = array_search($request->{'url'}, $uac);
$uac[$index] = " ";
$rspnc = json_decode($response);
$res[$index] = $rspnc;
}
require("RollingCurl.php");
$rc = new RollingCurl("request_callback");
$rc->options = array(CURLOPT_BINARYTRANSFER => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false);
$rc->window_size = 5;
foreach ($uarray as $url) {
$request = new RollingCurlRequest($url);
$rc->add($request);
}
$rc->execute();
for($i = 0; $i <= count($res); $i++)
{
for ($j = 0; $j <= 1; $j++) {
echo $res[$i]->{'name'};
echo "/";
echo $res[$i]->{'quality'};
echo "/";
echo $res[$i]->{'buy_offers'}[$j]->{'o_price'};
echo "/";
echo $res[$i]->{'buy_offers'}[$j]->{'c'};
echo "/";
echo $res[$i]->{'buy_offers'}[$j]->{'my_count'};
echo "/";
echo $res[$i]->{'classid'}. "_" .$res[$i]->{'instanceid'};
echo "<br>";
}
echo "<p><p><p>";
}
?>
我在这个字符串中遇到内存限制错误:
$index = array_search($request->{'url'}, $uac);
数组 $uarray 包含 10000 个 url。我已经将 php.in 中的 memory_limit 值更改为 -1。 phpinfo() 将 memory_limit 值显示为 -1。所以我认为错误是由于 32 位 PHP 和 Apache 而发生的。我有 16GB 内存的 64 位 Windows。所以代码中的问题。帮助我重写这段代码,尤其是 array_search 函数,以将原始数组切片并合并回来左右。对不起我的语言。
【问题讨论】:
-
[link]stackoverflow.com/questions/18942839/…你能检查一下吗..这可能会有所帮助
-
你也可以试试anindya.com 起初我会试试光辉发布的链接。
标签: php memory memory-leaks fatal-error