 
			
				02.11.2017, 15:10
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Символ & в регулярном выражении
			 
			
		
		
		
		Здравствуйте! Помогите, пожалуйста. 
С помощью регулярки, сравниваю строки из файла и вывожу номер строки так:
 
$str = (key(preg_grep('|'.preg_quote($url).'|i',$ar))+1);
Но если строка содержит символ "&", то при наличии одинаковых строк, но с данным символом, скрипт сообщает, что такой строки нет. Как мне быть?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.11.2017, 15:52
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 А зачем рег. выражения для сравнения строк? Если & и $url, сравниваются URL? А если так, то что есть "одинаковые URL"? Может быть parse_url и parse_str? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.11.2017, 16:04
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Да, URL передается через get запрос, вот этот URL, надо сравнить со списком URL в файле. Как это сделать лучше? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.11.2017, 16:07
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Вы не сможете сравнивать URL посредством руг. выражений уже потому, что к примеру порядок одних и тех же параметров запроса может быть иной, а если при этом не важны значения параметров, то тем более. 
 
parse_url и parse_str, это для анализа URL. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.11.2017, 16:16
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от laimas
			 
		
	 | 
 
	
		Вы не сможете сравнивать URL посредством руг. выражений уже потому, что к примеру порядок одних и тех же параметров запроса может быть иной, а если при этом не важны значения параметров, то тем более. 
 
parse_url и parse_str, это для анализа URL.
	 | 
 
	
 
 Что интересно, все работало, пока не столкнулась с этой проблемой. В принципе, их сравнение вписывается в сравнение двух строк, тем более нужен, по сути, номер найденной строки в файле. Необходимо, в принципе, простое сравнение, что подскажите? parse_url - разбирает URL и возвращает его компоненты, как мне это поможет?  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Sonya, 02.11.2017 в 16:17.
				Причина: Уточнение
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.11.2017, 16:21
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Sonya
			
		
	 | 
 
	| 
		Необходимо, в принципе, простое сравнение
	 | 
 
	
 
 Для сравнения строк не нужны рег. выражения. 
 
	
 
	| 
		
			Сообщение от Sonya
			
		
	 | 
 
	| 
		что подскажите?
	 | 
 
	
 
 
Я не знаю, что в вашем случае есть условие "равно", если отсутствие и наличие символа & в строке не должно учитываться. Коли он вам мешает, удаляйте его перед сравнением.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.11.2017, 16:36
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Нет символ & - стал "камнем преткновения", если он в URL есть, значит пусть будет. С помощью рег. ищу числовые строки, очень даже успешно. Здесь же задача, как мне видится простая, поиск URL переданного  через GET - в файле, здесь рег. выражения, как поняла, не вариант, вопрос тогда, как лучше? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.11.2017, 16:42
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Если & камень преткновения, то path?a=1&b=2 и path?a=1 равны или нет? А path?a=1&b=2 и path?b=2&a=1 равны? 
 
Я не задаю условий что равно, а что нет, поэтому что-то сказать не могу. Функции производящие анализ URL я привел. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.11.2017, 16:55
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от laimas
			 
		
	 | 
 
	| 
		path?a=1&b=2 и path?a=1 равны или нет? А path?a=1&b=2 и path?b=2&a=1 равны?
	 | 
 
	
 
 Нет! В анализе URL нет смысла, URL - в файле, та же самая строка, если она идентична, той которая передается в запросе, то истина, если отличается - её проблемы, даже, если она несет на исполнение ту же информацию.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				02.11.2017, 16:57
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.07.2016 
					
					
					
						Сообщений: 281
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Поэтому и стоит вопрос о сравнении строк, как таковых, а не URL. Поэтому в моем вопросе изначально, я не делала акцент на URL, хотя из имени переменной это было понятно. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |