Есть пример(ниже) он выдаёт страницы на экран. Ранее я работал с одиночным запросом и переводил html полученный код в текст и искал по совпадению (допустим Значение 1) и выводил эхом из условия . Как сделать теперь чтоб искал по совпадению т.к всё в цикле помогите. $document = curl_exec($curl); $sr = htmlentities($document); $main_str=$sr; //искомый текст if (strpos($main_str, 'Значение 1') !== false) { echo 'Ошибка'; } elseif (strpos($main_str, 'Значение 2') !== false) { echo 'Всё хорошо'; } elseif (strpos($main_str, 'Значение 3') !== true) { echo 'Критическая ошибка'; } Код (Text): <?php $urls = array( 'http://1***.245/start/start.htm', 'http://1****.236/start/start.htm', 'http://1*****193/start/start.htm', ); $mh=curl_multi_init(); //создаем набор дескрипторов cURL foreach ($urls as $i=>$v){ $ch[$i]=curl_init($v); curl_setopt($ch[$i], CURLOPT_HEADER, 0); //Не включать заголовки в ответ curl_setopt($ch[$i], CURLOPT_RETURNTRANSFER, 1);//Убираем вывод данных в браузер. Пусть функция их возвращает, а не выводит curl_setopt($ch[$i], CURLOPT_CONNECTTIMEOUT,30);//Таймаут соединения // curl_setopt($ch[$i], CURLOPT_TIMEOUT, 30); //максимальное время выполнения всего cURL-запроса в секундах. В мульти cURL не работает, это - баг. curl_multi_add_handle($mh, $ch[$i]); } echo '<b>Start at '.date('H:i:s').'</b><hr>'; while (curl_multi_exec($mh, $running)==CURLM_CALL_MULTI_PERFORM);//Запускаем соединения usleep (100000); //100мс. Зачем эти две строки? Пауза нужна, чтобы пропустить переходное состояние.. $status=curl_multi_exec($mh, $running); //.. libcurl-a между *_PERFORM и *_OK См. "Очень важный момент" в статье $tick=0; while ($running>0 && $status==CURLM_OK) {//Выполняем запрос, пока есть незавершенные соединения и нет ошибок мульти cURL $text='Step '.++$tick; $sel=curl_multi_select($mh,4); //Note: таймаут может быть десятичной дробью, если нужно. usleep (500000); //500мс. Эт чтобы два одинаковых по времени запроса за один проход цикла обрабатывались. Не обязательная пауза. while (($status=curl_multi_exec($mh, $running))==CURLM_CALL_MULTI_PERFORM); //Вдруг cURL хочет быть вызвана немедленно опять.. $text.="<br>select amnt: $sel<br>"; //количество доступных к обработке файловых дескрипторов $text.="running amnt: $running<br>"; //количество работающих простых дескрипторов cURL echo $text; while (($info=curl_multi_info_read($mh))!=false){ $easyHandle=$info['handle']; //простой дескриптор cURL $one=curl_getinfo($easyHandle); $httpCode=$one['http_code']; if ($httpCode!=200) $httpCode="<font color='red'>$httpCode</font>"; $text="<br>URL: ${one['url']} | HTTP code: $httpCode"; $text.="<br>Total time: <b>${one['total_time']}</b><br>"; if ($httpCode==200) //Выдать текст страницы, если он успешно получен $text.=curl_multi_getcontent($easyHandle); echo "$text<br>"; curl_multi_remove_handle($mh, $easyHandle); curl_close($easyHandle); } echo '<hr>'; flush(); } echo 'Finish at '.date('H:i:s').'<br>'; echo "Finally, still running - $running, multi status - $status"; curl_multi_close($mh); ?>
Подскажите парсю url т.е html код он расшифровывается в текст и в тексте по совпадению в строке выводится тот или иной текст . Проблема в условиях При определённых расположениях http? выдаёт так Ошибка Ошибка Ошибка Всё хорошо Всё хорошо Ошибка Всё хорошо Ошибка Ошибка Как правильно доработать условие? <?php $urls = array( 'http://1******3/start/start.htm', 'http://1*****5/start/start.htm', 'http://1****6/start/start.htm', ); //помещаем каждую ссылку в функцию file_get_contents foreach($urls as $urlsItem) { //пропускаем каждую ссылку в цикле $output = curl_init(); //подключаем курл curl_setopt($output, CURLOPT_URL, $urlsItem); //отправляем адрес страницы curl_setopt($output, CURLOPT_RETURNTRANSFER, true); curl_setopt($output, CURLOPT_HEADER, 0); $out .= curl_exec($output); //помещаем html-контент в строку curl_close($output); //закрываем подключение $main_str = htmlentities($out); if (strpos($main_str, 'PtrVal[1] = "1"') !== false) { echo 'Ошибка'; } elseif (strpos($main_str, 'PtrVal[1] = "0"') !== false) { echo 'Всё хорошо'; } elseif (strpos($main_str, 'LCD[0] = "ЗАМЕНИТЕ"') !== true) { echo 'Замените '; } } ?>