Вырезать из строки от слова до слова

hell0w0rd

Продвинутый новичок
PHP:
$str = 'http://www.site.ru/details?id=блабла...&tVars=78?x=771';

$startPos = mb_strpos($str, 'блабла');
$lastPos = mb_strpos($str, '&', $startPos);

echo mb_substr($str, $startPos, $lastPos);
По идее так должно работать, но у меня почему-то не работает
 

sanu0074

Новичок
Я так сделал!
PHP:
$data=parse_url($str);
	$str = $data["query"];
	for($i=0;$i<strlen($str);$i++)
	{
		if($str[$i]=="&")
		{
			$str = substr($str,3,$i-3); break;
		}
	}
	$str=str_replace("id=","",$str);
	return $str;
 

sanu0074

Новичок
Хотя так:
PHP:
return preg_replace("/#id=([^&]+)&#ui/","",$str);
почему-то не сработало((
 

Yoskaldyr

"Спамер"
Партнер клуба
Реально ТС вместе с hell0w0rd или курят одну дурь или просто на одной экстремально аутичной волне...

Для непонятливых повторю:
c0dex уже дал ответ.
 

hell0w0rd

Продвинутый новичок
Yoskaldyr
ну-ну) parse_str довольно веселая функция)) Ее нужно как минимум в замыкании/отдельной функции выполнять, такая-же хрень, как и extract. Более того, если изначально не известно какое название у параметра в урле, прийдется с $$ извращаться, так что кто еще и чего курит)
ТС спросил про нахождение подстроки, я ему скинул нахождение подстроки)
зы ааа.. там второй параметр есть... тогда пошел дальше курить:D
 

Yoskaldyr

"Спамер"
Партнер клуба
hell0w0rd, Э-э-э... что????
Какие нафиг замыкания? А прочитать внимательно мануал? 2-й необязательный параметр при вызове parse_str придуман наверное просто так по приколу, просто чтобы было.

Удивляет когда вместо того чтобы использовать стандартный функционал (который работает быстро и безглючно), начинают писать свои мегавелосипеды, которые глючат или тормозят.
 

Yoskaldyr

"Спамер"
Партнер клуба
Вурдалак, Ну я же и не говорил что там красивое API. Но свою задачу выполняет и это стандартный функционал. И это точный ответ (вместе с parse_url) на поставленный ТС-ом вопрос.
 

Тугай

Новичок
sanu0074
PHP:
$str = 'http://www.site.ru/details?id=blabla...&tVars=78?x=771';
preg_match('%id=([^&]+)&%u', $str, $m);
echo $m[1];
ты был на верном пути ... :)

parse_str лезет в scope - сразу открывается дверь для эксплойтов.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Тугай
никуда она не лезет, если писать нормально
 

Тугай

Новичок
c0dex
Посмотрел можно в массив парсить, все будет нормально.
В PHP полно таких фасадов все не запомнишь.

sanu0074, parse_url _str тоже имеет право на жизнь должно работать шустрее regexp'ов.
PHP:
$str = 'http://www.site.ru/details?id=blabla...&tVars=78?x=771';
parse_str(parse_url($str, PHP_URL_QUERY), $m);
echo $m['id'];
 
Сверху