2012-03-18 4 views
0

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

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

Это для того, чтобы сделать определенные символы в интерактивной гиперссылке.

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

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

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

ответ

1

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

This is a reference to the >>4 reply 

... в:

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

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

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

После того, как вы сделаете это, вы прибываете в:

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

Удачи

+0

Спасибо! Это помогло. – Visualizer7

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