2009-09-06 2 views
2

я не знаю, если это достаточно данных, чтобы подпитывают, но у меня естьКак использовать шаблон переменной с preg_match?

preg_match ('/ SAMPLETEXT /', $ bcurl, $ cookie1);

и мне было интересно, если я могу сделать это

preg_match ($ newfunction, $ bcurl, $ cookie1);

, но когда я это сделаю, я получаю эту ошибку "Предупреждение: preg_match() [function.preg-match]: разделитель не должен быть буквенно-цифровым или обратным слэшем в".

Как я могу заставить его проверить мою новую функцию, а не проверять ее только на «SAMPLETEXT».

+0

Какова стоимость $ newfunction? – 2009-09-06 21:21:42

+0

Значение $ newfunction состоит из случайной ключевой строки около 5-10 чисел, которая вставляется в SQL в другой файл при загрузке. – Homework

ответ

8

Попробуйте preg_match("/$newfunction/", $bcurl, $cookie1);, так что вы предоставляете необходимые разделители (используя разделитель, который не будет в $ newfunction).

Обратите внимание, что documentation говорит: «Не используйте preg_match(), если вы хотите только проверить, содержится ли одна строка в другой строке. Вместо этого используйте strpos() или strstr(), поскольку они будут быстрее».

+1

Это был чистый провал. Это проверка веб-сайта для функции $ вместо фактического случайного ключа, что функция $. – Homework

+0

Я использую cURL. – Homework

+3

@Joey: Вы использовали двойные кавычки или одинарные кавычки? – ysth

2

и можно использовать переменный, поместив его между []

$subject = "abcdef"; 
$ch = 'b'; 
$pattern = '/[$ch]/'; 
preg_match($pattern, $subject, $matches); 
//print_r($matches); 
if ($matches) 
{ 
    echo $subject; 
} 
+1

Это выглядит только потому, что переменная _name_ содержит c. –

+0

* «u может использовать переменную, помещая ее между []» *, это просто неверно. То, что этот код работает вообще, происходит только случайно. –

2

preg_match('/'.$pattern.'/i', $subject)

i вариантом: разрешить заглавные буквы или дефис.

Смежные вопросы