нубу подскажите, по скрипту простому)

апнуть сообщением нельзя спустя 3 недели ?:)

Кто сможет подскажите плиз, на предыдущей странице вопрос актуален. Видимо это из-за цикла For т.к. без него вроде работает :(

Ещё мелкий вопрос,
примерно такой код:
PHP:
while(true) { 
$go = file_get_contents("$url");
if (preg_match("#".$find."(.*?)text(.*?)55#", $go, $slovo))
{
exec("");
} else {
    echo "He Найдено";
}
sleep(5);

Если найден такой-то текст по регулярке, то выполняется программа
,если не найден, то не выполняется.
А нужно сделать так, если найден текст,по данной регулярке, то определенный текст в этой регулярке помещается в переменную $peremennya
и выполняется второй http запрос в котором есть переменная эта
Ну и соответственно, если не найдена регулярка, то ничего не производится.
вот как-то так:

PHP:
while(true) { 
$go = file_get_contents("$url");
if ($peremenaya=preg_match("#".$find."(.*?)text(.*?)55(.*?)#", $go, $slovo))
{
file_get_contents("$url.$peremenaya");
} else {
    echo "He Найдено";
}
sleep(5);
проблема в том, что таких "(.*?)" несколько в регулярке ( без них никак, и не убрать) получается что $peremenaya будет содержать несколько значений?
Можно ли как-то обозначить, чтобы учлось 1 зачение?( но приэтом не нарушился поиск по странице .
ну может так как-нибудь так:
PHP:
if ($peremenaya=preg_match("#".$find.".*?text.*?55(.*?)#", $go, $slovo))
Будет ли тот весь текст, что в скобках главным текстом - единственным значением $peremenaya ?
п.с. нужен самый просто вариант)
 
Используй отрицательное утверждение "?!" при группировки элементов что бы исключить из выборки:

Для примера что бы ты понял:
PHP:
... $peremenaya=preg_match("#".$find."(?!.*?)text(.*?)55(?!.*?)#", $go, $slovo) ...
Выборка будет сделана только отсюда:
PHP:
text(.*?)

Короче что бы исключить и выборки группируемый элемент после открывающейся скобки в шаблоне "(" Ставишь "?!".
Пример:
PHP:
(?! бла бла бла )

И кстати в переменную $peremenaya будет записан результат работы функции preg_match(), 1 = что то нашлось по маске (то есть есть результат), 0 = нечего не нашлось. Результат же выборки функцией preg_match() будет храниться в переменной $slovo, причем будет возвращен массив где в элементе массива с ключом 0 будет храниться кусок в котором было найдено, а в остальных результаты выборки в зависимости от количества групп выборки. Короче сразу после отработки функции preg_match() делаешь unset($slovo[0]) что бы глаза не мозолило, все остальные элементы массива собственно будут результатом выборки в зависимости от того сколько скобочек проставил и какие исключил из выборки.
 
  • Нравится
Реакции: doxx
можешь что-то вроде этого использовать
PHP:
$key = null;
if ( условие какое-то) ) {$key = 0;}
elseif ( условие какое-то ) {$key = 1;}
elseif ( условие какое-то ) {$key = 2;}

switch( $key ) {
	case 0:
		//часть1
	file_get_contents('Запрос1');
	file_get_contents('Запрос2');
	file_get_contents('Запрос3');
	file_get_contents('Запрос4');
		break;
	case 1:
		//часть2
	file_get_contents('Запрос5');
	file_get_contents('Запрос6');
	file_get_contents('Запрос7');
	file_get_contents('Запрос8');
		break;
	case 2:
		//часть3
	file_get_contents('Запрос9');
	file_get_contents('Запрос10');
	file_get_contents('Запрос11');
	file_get_contents('Запрос12');
		break;

	default:
		//часть1
	file_get_contents('Запрос1');
	file_get_contents('Запрос2');
	file_get_contents('Запрос3');
	file_get_contents('Запрос4');
		break;
}
 
  • Нравится
Реакции: doxx
можешь что-то вроде этого использовать
PHP:
$key = null;
if ( условие какое-то) ) {$key = 0;}
elseif ( условие какое-то ) {$key = 1;}
elseif ( условие какое-то ) {$key = 2;}
switch( $key ) {
	case 0:
		//часть1
	file_get_contents('Запрос1');
	file_get_contents('Запрос2');
	file_get_contents('Запрос3');
	file_get_contents('Запрос4');
		break;
	case 1:
		//часть2
	file_get_contents('Запрос5');
	file_get_contents('Запрос6');
	file_get_contents('Запрос7');
	file_get_contents('Запрос8');
		break;
	case 2:
		//часть3
	file_get_contents('Запрос9');
	file_get_contents('Запрос10');
	file_get_contents('Запрос11');
	file_get_contents('Запрос12');
		break;
	default:
		//часть1
	file_get_contents('Запрос1');
	file_get_contents('Запрос2');
	file_get_contents('Запрос3');
	file_get_contents('Запрос4');
		break;
}
а попроще есть варианты?
какие условия зачем они? Без них не будет работать?
я сейчас просто комментарием /* */ так ставлю в куске кода...

Вот нашел со свич, пример,
PHP:
<?php
$x="Яблоко";
switch ($x) {
case "Яблоко":
    echo "Это Яблоко";
    break;
case "Груша":
    echo "Это Груша";
    break;
case "Арбуз":
    echo "Это Арбуз";
    break;
}
?>
пишут:
"Данный скрипт выводит "Это Яблоко".

Если так сделать,можно?

PHP:
while(true) { 

$x="opa1,opa2"; // тут как-то присвоить несколько вариантов можно? case "pa1 и 2 выполняется 3 нет
switch ($x) {

//часть1
case "opa1":
file_get_contents('Запрос1');
file_get_contents('Запрос2');
file_get_contents('Запрос3');
file_get_contents('Запрос4');
break;


//часть2
case "opa2":

file_get_contents('Запрос5');
file_get_contents('Запрос6');
file_get_contents('Запрос7');
file_get_contents('Запрос8');
break;

case "opa3":
//часть3
file_get_contents('Запрос9');
file_get_contents('Запрос10');
file_get_contents('Запрос11');
file_get_contents('Запрос12');
break;
echo '';
sleep(23);
} }
 
Так никто и не подсказал..... :\
пошёл другим способом:
разбил этот большой файл на 10 файлов, в каждом часть запросов.
Создал файл старт.пхп
с
PHP:
<? 
set_time_limit(0);
include "1.php";
include "2.php";
include "3.php";
include "6.php";
include "7.php";
include "8.php";
include "9.php";
//include "10.php";
?>
ну, чтобы ненужные часть запросов просто было быстро закомментировать, чтоб они не выполнялись.
но появилась проблема, что файл 2.php не начинает выполняться пока 1.php не завершит всю отправку...
и ВСЕ нижеследующие за ним, соответственно тоже не начинают выполняться.
Как можно сделать чтобы они все выполнялись, не ожидая друг друга?
Содержимое файлов 1.php и всех остальных 2..3..4.. примерно такое:
PHP:
<? 
set_time_limit(0);
while(true) { 
echo '.......';
file_get_contents('http://....');
file_get_contents('http://....');
file_get_contents('http://....');
file_get_contents('http://....');
file_get_contents('http://....');
sleep(2000); 

file_get_contents('http://....');
file_get_contents('http://....');
file_get_contents('http://....');
file_get_contents('http://....');
file_get_contents('http://....');

}
?>
 
Назад
Сверху