Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.11.2017, 15:10
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Символ & в регулярном выражении
Здравствуйте! Помогите, пожалуйста.
С помощью регулярки, сравниваю строки из файла и вывожу номер строки так:
$str = (key(preg_grep('|'.preg_quote($url).'|i',$ar))+1);

Но если строка содержит символ "&", то при наличии одинаковых строк, но с данным символом, скрипт сообщает, что такой строки нет. Как мне быть?
Ответить с цитированием
  #2 (permalink)  
Старый 02.11.2017, 15:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А зачем рег. выражения для сравнения строк? Если & и $url, сравниваются URL? А если так, то что есть "одинаковые URL"? Может быть parse_url и parse_str?
Ответить с цитированием
  #3 (permalink)  
Старый 02.11.2017, 16:04
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Да, URL передается через get запрос, вот этот URL, надо сравнить со списком URL в файле. Как это сделать лучше?
Ответить с цитированием
  #4 (permalink)  
Старый 02.11.2017, 16:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вы не сможете сравнивать URL посредством руг. выражений уже потому, что к примеру порядок одних и тех же параметров запроса может быть иной, а если при этом не важны значения параметров, то тем более.

parse_url и parse_str, это для анализа URL.
Ответить с цитированием
  #5 (permalink)  
Старый 02.11.2017, 16:16
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Сообщение от laimas Посмотреть сообщение
Вы не сможете сравнивать URL посредством руг. выражений уже потому, что к примеру порядок одних и тех же параметров запроса может быть иной, а если при этом не важны значения параметров, то тем более.

parse_url и parse_str, это для анализа URL.
Что интересно, все работало, пока не столкнулась с этой проблемой. В принципе, их сравнение вписывается в сравнение двух строк, тем более нужен, по сути, номер найденной строки в файле. Необходимо, в принципе, простое сравнение, что подскажите? parse_url - разбирает URL и возвращает его компоненты, как мне это поможет?

Последний раз редактировалось Sonya, 02.11.2017 в 16:17. Причина: Уточнение
Ответить с цитированием
  #6 (permalink)  
Старый 02.11.2017, 16:21
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
Необходимо, в принципе, простое сравнение
Для сравнения строк не нужны рег. выражения.

Сообщение от Sonya
что подскажите?

Я не знаю, что в вашем случае есть условие "равно", если отсутствие и наличие символа & в строке не должно учитываться. Коли он вам мешает, удаляйте его перед сравнением.
Ответить с цитированием
  #7 (permalink)  
Старый 02.11.2017, 16:36
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Нет символ & - стал "камнем преткновения", если он в URL есть, значит пусть будет. С помощью рег. ищу числовые строки, очень даже успешно. Здесь же задача, как мне видится простая, поиск URL переданного через GET - в файле, здесь рег. выражения, как поняла, не вариант, вопрос тогда, как лучше?
Ответить с цитированием
  #8 (permalink)  
Старый 02.11.2017, 16:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если & камень преткновения, то path?a=1&b=2 и path?a=1 равны или нет? А path?a=1&b=2 и path?b=2&a=1 равны?

Я не задаю условий что равно, а что нет, поэтому что-то сказать не могу. Функции производящие анализ URL я привел.
Ответить с цитированием
  #9 (permalink)  
Старый 02.11.2017, 16:55
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Сообщение от laimas Посмотреть сообщение
path?a=1&b=2 и path?a=1 равны или нет? А path?a=1&b=2 и path?b=2&a=1 равны?
Нет! В анализе URL нет смысла, URL - в файле, та же самая строка, если она идентична, той которая передается в запросе, то истина, если отличается - её проблемы, даже, если она несет на исполнение ту же информацию.
Ответить с цитированием
  #10 (permalink)  
Старый 02.11.2017, 16:57
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Поэтому и стоит вопрос о сравнении строк, как таковых, а не URL. Поэтому в моем вопросе изначально, я не делала акцент на URL, хотя из имени переменной это было понятно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменная в регулярном выражении xShift Общие вопросы Javascript 2 22.12.2016 16:41
Пробел в регулярном выражении N1kS Общие вопросы Javascript 5 25.06.2016 15:59
Помощь в регулярном выражении! celkabelka Общие вопросы Javascript 5 13.04.2013 17:53
Предполагается наличие ';' в IE7- FINoM (X)HTML/CSS 5 25.08.2012 16:05
Способ реализации позитивного просмотра в перед в регулярном выражении kichSman Общие вопросы Javascript 10 11.04.2012 21:19