2012-03-26 10 views
7

próbuję użyć ciągu jako wzorcu wyrażenia regularnego, ale mam następujące błędyPHP: string do regex

PHP Warning: preg_match(): Unknown modifier '>' in /Applications/MAMP/htdocs/cruncher/Plugins/wordpress/WPDetect.php on line 22 
PHP Warning: preg_match(): Unknown modifier '/' in /Applications/MAMP/htdocs/cruncher/Plugins/wordpress/WPDetect.php on line 22 

Kod

$str = "<meta name=\"generator\" content=\"WordPress.com\" />" 
preg_match("/".$str."/", $content->content) 

Próbowałem również użyć funkcji preg_quote ale mam podobne problemy.

Jaki jest prawidłowy sposób na działanie?

Sultan

Odpowiedz

11

Zastosowanie preg_quote funkcji i wzór zamknięty z |...|

preg_match("|" . preg_quote($str, "|") . "|", $content->content) 
+0

Dziękuję @piotrekkr zadziałało – sultan

+0

na pewno nie był w stanie zaakceptować odpowiedzi przez około 8 minut) – sultan

+0

OK przepraszam, że nie miałeś czasu na to ograniczenie czasu :) – piotrekkr

0

Musisz uciec Twój ogranicznik

$str = "<meta name=\"generator\" content=\"WordPress.com\" \/>" 
0

Regular wypowiedzi zawierają zestaw specjalnym char jak \ - *. ? $^+() [] I więcej, trzeba uciec je z ciągiem przed użyciem (ty Esacpe dodając \ przed char)

1

ten pracował dla mnie

$pattern = "/" . preg_quote($source, "/") . "/";