Автор: KYjIXaKEP
Дата сообщения: 29.07.2010 21:03
В общем вот весь код.
Код: header('Content-type: text/html; charset=UTF-8');
mb_internal_encoding('UTF-8'); // Устанавливаем кодировку строк
echo "setlocale(LC_ALL, 'ru_RU.UTF-8')=" . setlocale(LC_ALL, 'ru_RU.UTF-8', 'ru_RU.utf8' ). "<br>";
echo "setlocale(LC_ALL, 0)=" . setlocale(LC_ALL, 0). "<br>";
echo "setlocale(LC_COLLATE, 0)=" . setlocale(LC_COLLATE, 0). "<br>";
echo "setlocale(LC_CTYPE, 0)=" . setlocale(LC_CTYPE, 0). "<br>";
echo "setlocale(LC_MONETARY, 0)=" . setlocale(LC_MONETARY, 0). "<br>";
echo "setlocale(LC_NUMERIC, 0)=" . setlocale(LC_NUMERIC, 0). "<br>";
echo "setlocale(LC_TIME, 0)=" . setlocale(LC_TIME, 0). "<br>";
$text=nl2br(file_get_contents('intext.txt')); //файл сохранен в UTF8
$keywords='надо|http://chizhekov.ru/
конец|http://ngs.ru/
';//ANSI !!! т.к. файл с кодом в анси сохранен
$keywords = (iconv('cp1251', 'utf-8', $keywords)) ? iconv('cp1251', 'utf-8', $keywords) : $keywords ; //переводим в УТФ
echo iconv('cp1251', 'utf-8' ,"ДО:------------------<br>").$text.iconv('cp1251', 'utf-8' ,"<br>------------------ПОСЛЕ \b:------------------<br>");
$keys=explode("\n", $keywords);
foreach ($keys as $key) {
$pat='/([\w\W]*?)\|([\w\W]*)/';
if(preg_match_all($pat,$key,$matches,PREG_SET_ORDER)){
foreach ($matches as $match) {
$keyword=trim($match[1]);
$link=trim($match[2]);
$replace=' <a href="'.$link.'" target="_blank" title="'.$keyword.'">'.$keyword.'</a> ';
$regEx = "#(?!((<.*?)|(<a.*?)))(\b". $keyword . "\b)(?!(([^<>]*?)>)|([^>]*?</a>))#si";
$regEx2 = "#(?!((<.*?)|(<a.*?)))(\W". $keyword . "\W)(?!(([^<>]*?)>)|([^>]*?</a>))#si";
$text2 = $text;
$text = preg_replace($regEx,$replace,$text);
$text2 = preg_replace($regEx2,$replace,$text2);
}
}
}
echo ($text);
echo iconv('cp1251', 'utf-8' ,"<br>------------------ПОСЛЕ \W:------------------<br>") . $text2;