Добавить ссылки на конкретные слова в теге span в PHP - PullRequest
1 голос
/ 11 января 2011

У меня есть список слов, на которые я хотел бы добавить ссылку, я могу сделать это довольно легко, используя preg_match_all и preg_replace:

$str = "<span class=\"cz\">Dám si jedno pivo prosím.</span> = I'll have a beer please.";

preg_match_all('/[a-zťúůýžáčďéěíňóřš]+/i',$str,$matches);
$matches = array_unique($matches[0]);

foreach ($matches as $match) {
    if(!empty($words[$match])) {
        $str = preg_replace("/(^|[^\w]){1}(".preg_quote($match,"/").")($|[^\w]){1}/i", '\\1<a href="#">\\2</a>\\3', $str);
    }
}

echo $str;

Что я хотел бы сделать, так это ограничить ссылки только внутри тега span.

Мой мозг отрыгнут, поэтому любая помощь будет принята с благодарностью! Спасибо!

Даррен.

Ответы [ 2 ]

0 голосов
/ 11 января 2011
preg_match_all('/[a-zťúůýžáčďéěíňóřš]+(?=\s*?</span>)/i',$str,$matches);
0 голосов
/ 11 января 2011
/( *<SPAN*>)([^<]*)(<\/SPAN>)/i

Я думаю, что-то вроде этого должно работать, но сломается, если у вас есть другие теги внутри SPANЯ бы посоветовал вам использовать вместо этого функции DOM.

...