Символ & в регулярном выражении
Здравствуйте! Помогите, пожалуйста.
С помощью регулярки, сравниваю строки из файла и вывожу номер строки так: $str = (key(preg_grep('|'.preg_quote($url).'|i',$ar))+1); Но если строка содержит символ "&", то при наличии одинаковых строк, но с данным символом, скрипт сообщает, что такой строки нет. Как мне быть? |
А зачем рег. выражения для сравнения строк? Если & и $url, сравниваются URL? А если так, то что есть "одинаковые URL"? Может быть parse_url и parse_str?
|
Да, URL передается через get запрос, вот этот URL, надо сравнить со списком URL в файле. Как это сделать лучше?
|
Вы не сможете сравнивать URL посредством руг. выражений уже потому, что к примеру порядок одних и тех же параметров запроса может быть иной, а если при этом не важны значения параметров, то тем более.
parse_url и parse_str, это для анализа URL. |
Цитата:
|
Цитата:
Цитата:
Я не знаю, что в вашем случае есть условие "равно", если отсутствие и наличие символа & в строке не должно учитываться. Коли он вам мешает, удаляйте его перед сравнением. |
Нет символ & - стал "камнем преткновения", если он в URL есть, значит пусть будет. С помощью рег. ищу числовые строки, очень даже успешно. Здесь же задача, как мне видится простая, поиск URL переданного через GET - в файле, здесь рег. выражения, как поняла, не вариант, вопрос тогда, как лучше?
|
Если & камень преткновения, то path?a=1&b=2 и path?a=1 равны или нет? А path?a=1&b=2 и path?b=2&a=1 равны?
Я не задаю условий что равно, а что нет, поэтому что-то сказать не могу. Функции производящие анализ URL я привел. |
Цитата:
|
Поэтому и стоит вопрос о сравнении строк, как таковых, а не URL. Поэтому в моем вопросе изначально, я не делала акцент на URL, хотя из имени переменной это было понятно.
|
Часовой пояс GMT +3, время: 00:40. |