проблема с работой функции которая выполняется более 60с. на хостинге

ЕС
На сайте с 29.09.2010
Offline
47
512

Доброй ночи...у меня такой вопрос...

Всё дело происходит на хостинге=)))

есть функция. которая выполняется довольно долго примерно минуту.

Данная функция возвращает результат , который впоследствии отбражается.

Так вот проблема в следующем, сервер возвращает только то что было выведено до вызова фунции.

проблема решилась если в теле функции выводить - echo "."( ну любой символ тоже подойдёт) - это костылное решение=(((

локально такая проблема не наблюдается....

Помогите чем можете=))))

Евгений(СПБ) добавил 07.03.2011 в 03:29

пример

echo "a"; - выводится

echo "b"; - выводится

my_function();

echo "c"; - НЕт выводит

а если в тело функции боавляю вывод, например:

my_function() {

....

echo ".";

...

}

то РЕЗУЛЬТАТ:

echo "a"; - выводится

echo "b"; - выводится

my_function();

echo "c"; - выводится

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#1

Фантастика.

1. Какая версия php на сервере?

2. Код этой фантастической функции в студию.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
ЕС
На сайте с 29.09.2010
Offline
47
#2

php 5

function proxy_file_get_html($request_url,&$proxyInfo) { echo ".";

static $proxyFailsIndex = 0;

static $proxyIndex = -1;

if($proxyIndex < (count(Config::$proxyServers) - 1)) {

$proxyIndex++;

} else {

$proxyIndex = 0;

}

//$proxyIndex = rand(0,4);

$fp = fsockopen(

Config::$proxyServers[$proxyIndex]['ip'],

Config::$proxyServers[$proxyIndex]['port'],

$errno,

$errstr,

30

);

$username = Config::$proxyServers[$proxyIndex]['username'];

$password = Config::$proxyServers[$proxyIndex]['password'];

$proxy = Config::$proxyServers[$proxyIndex]['ip'].":".Config::$proxyServers[$proxyIndex]['port'];

if (!$fp) {

echo "ERROR:: $errstr ($errno)<br />\n";

} else {

$out = "GET $request_url HTTP/1.0\r\n";

$out .= "Host: yandex.ru\r\n";

$out .= "Proxy-Authorization: Basic ".base64_encode($username.':'.$password)."\r\n";

$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);

while (!feof($fp)) {

$line = fgets($fp);

$result .=$line;

if(substr_count($line,'Location: http://yandex.ru/showcaptcha?') > 0) {

$proxyFailsIndex++;

// if($proxyFailsIndex < 10) {

// $proxyFailsIndex++;

// } else {

// return -1;

// }

$proxyInfo[$proxy]['counter'] = $proxyInfo[$proxy]['counter'] + 1;

$proxyInfo[$proxy]['fails'] = $proxyInfo[$proxy]['fails'] + 1;

return -1;

}

}

fclose($fp);

}

$proxyInfo[$proxy]['counter'] = $proxyInfo[$proxy]['counter'] + 1;

$proxyFailsIndex = 0;

return $result;

}

вызов

$html = -1;

while($html == -1) {

$html = proxy_file_get_html($searchUrl,$proxyInfo);

}

Причём локально всё пашет...хостеру писал сравнивали настройки все одинаково...какая то ху....я...немогу понять в чём дело....

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий