2013-08-11 2 views
0

Я пытаюсь найти совпадение в строке с регулярным выражением, но не работает. Я хочу совпадение function gcb_process.Соответствие строк с регулярным выражением

Это то, что я сделал:

$gatewayname = basename($path, ".php"); 
$contents = file_get_contents($path); 
$searchname = $gatewayname . "_process"; 

preg_match("/function\s*".$searchname."/i", $contents, $matches); 

Я всегда получаю предупреждение:

Предупреждение: preg_match_all(): Компиляция не удалось: ничего, чтобы повторить в компенсировали 11

Как это делается?

+1

Предупреждение не имеет ничего общего с PHP код, который вы показать здесь. Вы должны показать нам код, где вы называете 'preg_match_all()', а не 'preg_match()'. –

+0

Я фактически использовал preg_match_all, а не preg_match –

+0

* «Это то, что я сделал:« * 'preg_match («/function \ s * gcb_process/i », $ contents, $ matches);' –

ответ

0

Испытано:

$subject = "I want to match occurence of function gcb_process."; 
$pattern = '/function gcb_process/'; 
preg_match($pattern, $subject, $matches); 
print_r($matches); 

Выход:

Array ([0] => function gcb_process) 

PHP Doc Читать подробнее подробнее

+0

Хорошо, я не получал правильное значение в $ gateway, который я получал *. $ searchname было поэтому «* _process и, следовательно, ошибка. –

+0

Можете ли вы рассказать нам значение $ searchname, вы можете получить echo $ searchname, чтобы получить. Так что у нас может быть какая-то лучшая идея. –

+0

$ searchname value is filename без расширения php. case gcb.php. У моего шлюза есть имя файла, добавленное к _process. Я действительно смог обнаружить ошибку и теперь работать. $ gatewayname не получал правильное значение. Спасибо всем. –

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