Preg Callback Issue - PullRequest
       16

Preg Callback Issue

0 голосов
/ 30 мая 2011

Великие товарищи ... Мне нужна ваша помощь .. пожалуйста, дайте мне знать, почему этот код не входит в функцию обратного вызова ...

<code>  wppp_content_hook('<p><a href="http://localhost/work/Kate/wp-content/uploads/2011/05/amg_sls_01.jpg"><img width="300" height="250" class="alignleft size-medium wp-image-195" title="amg_sls_0" alt="" src="http://localhost/work/Kate/wp-content/uploads/2011/05/amg_sls_01-300x250.jpg"></a></p>');

  function wppp_content_hook($content) {

    $fileTypes        = array('\.bmp|\.gif|\.jpg|\.jpeg|\.png');
    $pattern          = array();
    $rel              = 'wp-prettyPhoto';
    $pattern[]        = "/<a(.*?)href=('|\")([A-Za-z0-9\/_\.\~\:-]*?)($fileTypes)('|\")(.*?)>/i";
    $pattern[]        = "/<a(.*?)href=('|\")([A-Za-z0-9\/_\.\~\:-]*?)($fileTypes)('|\")(.*?)(rel=('|\")".$rel."(.*?)('|\"))([ \t\r\n\v\f]*?)((rel=('|\")".$rel."(.*?)('|\"))?)([ \t\r\n\v\f]?)([^\>]*?)>/i";


    return  preg_replace_callback($pattern,'_regexCallback',$content);
  }

  function _regexCallback($matches) {
   echo "<pre>";
    print_r($matches);
   echo "
"; глобальный $ post; $ fileTypes = array ('\. bmp | \ .gif | \ .jpg | \ .jpeg | \ .png'); $ rel = 'wp-prettyPhoto'; $ pattern = array (); $ replace = array (); $ pattern [] = "/ / я?"; $ pattern [] = "/ ] *)> / я "; $ replace [] = ' ID. ']">'; $ replace [] = ''; return! strpos ($ соответствует ['0'], '_blank')? preg_replace ($ pattern, $ replace, $ совпадений ['0']): $ совпадений ['0']; }

1 Ответ

0 голосов
/ 30 мая 2011

Поскольку ваш $pattern не соответствует $content

Точно посмотрите на ваши фактические регулярные выражения с помощью var_export 'ing $pattern

Обратный вызов будет выполнен, только если ваш контент будетсоответствовать регулярному выражению.В противном случае нет смысла выполнять функцию обратного вызова, поскольку совпадений нет.

Часть вашего фактического регулярного выражения: ([A-Za-z0-9\\/_\\.\\~\\:-]*?)(Array)

Кажется, что нежелательный «массив» проник в ваш шаблон (оба они).

...