Почему массив, перебираемый в foreach, не удается обрезать при каждом проходе цикла с помощью сессии?
Написал скрипт, который должен обрезать массив на накапливаемое в сессии число элементов. Цифра в сессии накапливается с каждым запуском программы, но вот обрезки массива не происходит. Почему? Не понимаю.. (
Если врдампить сессию, то, действительно, прибавляет с каждым перезапуском программы. Что-то происходит в районе array_slice().
В моем варианте выдает ошибку: Parse error: syntax error, unexpected 'as' (T_AS) in W:\domains\localhost\par.php on line 19
if (isset($_SESSION["time"])) {
/*var_dump($_SESSION["time"]);*/
}
foreach ((array_slice($matches[0], $_SESSION["time"], 0, true) as $key => $value) {
if (is_string($value)) {
/*var_dump(substr($value, 21));*/
$cut = substr($value, 128);
$output = 'https://yandex.ru/search/xml?user=&key=&query=' . urlencode($cut) . '&lr==ru&sortby=&filter=none&maxpassages=5&groupby=ocs-in-group%3D3';
$result = file_get_contents($output);
echo '<pre>';
var_dump($value);
var_dump($result);
echo '</pre>';
$fp = fopen("xml.txt", "a+");
fwrite($fp, $result);
fclose($fp);
sleep(0.30);
/* echo "<pre>";
var_dump($result);
echo "</pre>";*/
}
if($key == 10) {
$key = $key + 1;
break;
}
}
$steam = $key;
$_SESSION["time"] += $steam;
Ответы (1 шт):
Автор решения: Valentin
→ Ссылка
Проблема решилась: Не совсем понял, из-за каких действий.
- Вот тут: $cut = substr($value, 128);
заменил 128 на 1.. может просто результат полностью обрезался и поэтому код не отрабатывал, как нужно..
- Также, может быть, зависал ли браузер, либо сервер...