Не ловит & и &

Bu-Bu

Любитель PHP
Появилась необходимость распарсить ответы Яндекса и Гугля на запросы. Урлы выдрал нормально, но вот выкусить нужную часть урла никак не могу - не ловятся ни & ни &. Причем пробовал и строковые функции и preg_match. Вопрос: что там за знаки могут еще быть подставлены? Как правильно распарсить урлы с Яндекса или Гугля? Заранее спасибо за любые советы (кроме чтения доков).
 

c0dex

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

AnrDaemon

Продвинутый новичок
parse_url парсит URL на компоненты.
parse_str парсит отдельный компонент - QUERY_STRING - на составляющие.
Правда, делает она это так же, как сам PHP - т.е. гробит имена, содержащие символы, недопустмые в идентификаторах PHP.

P.S.
Шутка про то, что если вы не можете решить проблему регэкспом, вы недостаточно много его используете - это именно шутка.
Регулярка - не лучшее средство парсинга чего бы то ни было.
 

fixxxer

К.О.
Партнер клуба
Правда, делает она это так же, как сам PHP - т.е. гробит имена, содержащие символы, недопустмые в идентификаторах PHP.
Если надо распарсить без PHP-специфики (массивы, совместимость с register_globals), можно использовать функцию parse_query из пакета guzzlehttp/psr7.
 

Тугай

Новичок
... Урлы выдрал нормально ...
Если выдираешь из text node, то там & вместо &.
А если выдираешь из значения атрибутов, то там & не будет, там только &.
Скорей всего ты намешал при парсинге, проверь насклько "нормально выдрал" :)
 

AnrDaemon

Продвинутый новичок
@junior17, не надо нам тут кармаоверфлова…
Головой думай, прежде чем отвечать на чей-то вопрос, а не отвечай "лишь бы ответить".
 

junior17

Новичок
@junior17, не надо нам тут кармаоверфлова…
Головой думай, прежде чем отвечать на чей-то вопрос, а не отвечай "лишь бы ответить".
Ты дурачек что ли? Причем здесь кармаоверфлова и прочая... Это сейчас ты понтанутся так решил?
 

AnrDaemon

Продвинутый новичок
А съезд на оскорбления - это очень взрослая реакция, да.

Главное правило на stackoverflow - ответить на вопрос именно так, как он задан - не важно, насколько сам вопрос глуп. Если ты не отвечаешь на заданный вопрос - твой ответ будет удалён в лучшем случае. Если отвечаешь - велика вероятность заработать "карму". Из-за чего некоторые товарищи бегают и отвечают на тупые вопросы, только чтобы блеснуть своими идентично куцыми знаниями, нарабатывая карму.

Так вот, нам тут такого кармахарвестинга не нужно. Пожалуйста, думай головой, прежде чем отвечать на какой-то вопрос, либо как минимум прочти топик полностью.
 

junior17

Новичок
А съезд на оскорбления - это очень взрослая реакция, да.

Главное правило на stackoverflow - ответить на вопрос именно так, как он задан - не важно, насколько сам вопрос глуп. Если ты не отвечаешь на заданный вопрос - твой ответ будет удалён в лучшем случае. Если отвечаешь - велика вероятность заработать "карму". Из-за чего некоторые товарищи бегают и отвечают на тупые вопросы, только чтобы блеснуть своими идентично куцыми знаниями, нарабатывая карму.

Так вот, нам тут такого кармахарвестинга не нужно. Пожалуйста, думай головой, прежде чем отвечать на какой-то вопрос, либо как минимум прочти топик полностью.
Ок, признаюсь насчет оскорбления, был не прав. Но насчет кармы и прочего, я так и понял. Но это тут не причем, нафига мне это на форуме, где я тут являюсь анонимом?))
 

junior17

Новичок
Возможно я не врубаюсь, но автор темы же пишет, не знает как определить в строке & и & чтобы дальше разбить? Я и предложил сперва & перевести в &, потом разбить строку по &
 

AnrDaemon

Продвинутый новичок
Автор темы неверно читает входные данные. От этого все проблемы.
Если бы он читал их верно, такой проблемы бы просто не возникло.
 
Сверху