У меня написано 7-8 php-скриптов, которые извлекают данные с удаленного сервера и сохраняют их на нашем сервере. Каждый скрипт вставляет / обновляет около 3000-4000 записей одновременно. Когда я нажимаю любой скрипт из браузера, он работает нормально (отдельный скрипт), но если я пытаюсь собрать все файлы вместе, написав заголовок (‘Location: http://www.example.com/‘) это становится перерывом. Может кто-нибудь предложить мне лучший способ работать с этим. Кто-то предложил мне использовать многопоточность. Я еще не использовал многопоточность, поэтому кто-нибудь может помочь мне с лучшим подходом / решением. ТИА.
Замечания: Ваш текущий код не работает, потому что header('Location: example.com')
перенаправляет браузер на example.com
это означает, что ваш php-скрипт завершил работу, а браузер включен example.com
Решение 1:
если allow_url_fopen
в php.ini «Вкл.», вы можете выполнить их как:
<?php
$url1 = file_get_contents('http://www.example.com/1.php');
$url2 = file_get_contents('http://www.example.com/2.php');
?>
и так далее…
Решение 2:
function initCURL($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
используйте его следующим образом:
<?php
$url1 = initCURL('http://www.example.com/1.php');
$url2 = initCURL('http://www.example.com/2.php');
?>
в этих примерах $url1
а также $url2
будет нести все данные, возвращаемые сценариями.
Других решений пока нет …