preg_replace не работает - PullRequest
       13

preg_replace не работает

0 голосов
/ 18 марта 2012

У меня есть эта функция на моем веб-сайте.

function autolink($content) {
   $pattern = "/>>[0-9]/i" ;
   $replacement = "<a href=\"#$0\">>>$0</a>";
   return preg_replace($pattern, $replacement, $content, -1);

Это для превращения определенных символов в активируемую гиперссылку.

Например, (в потоке), когда пользователь вводит «>> 4» для обозначения другого ответа с номером 4, функция может быть полезной.

Но она не работает.символы не преобразуются в гиперссылки.Они просто остаются в виде простого текста.Не кликабелен.

Может кто-нибудь сказать мне, что не так с функцией?

1 Ответ

1 голос
/ 18 марта 2012

Таким образом, цель состоит в том, чтобы преобразовать:

This is a reference to the >>4 reply

... в:

This is a reference to the <a href="#4">&gt;&gt;4</a> reply

... где ">" - HTML UTF-8 эквивалент ">».(помните, вы не хотите создавать проблемы HTML)

Проблемы: (1) вы забыли экранировать кавычки в замене (2), так как вы хотите выделить число, вам нужно использовать скобкисоздать подшаблон для дальнейшего использования.

Как только вы это сделаете, вы получите:

function autolink($contents) {
    return preg_replace( "/>>([0-9])/i",
                         "<a href=\"#$1\">&gt;&gt;$1</a>",
                         $contents,
                         -1
                       );
}

Удачи

...