Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не получается заставить переводить текст в регулярках
 
 автор: dirol   (11.06.2008 в 09:46)   письмо автору
 
 

function encodestring($st)
  {
    // Сначала заменяем "односимвольные" фонемы.
    $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",
    "abvgdeeziyklmnoprstufh'iei");
    $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
    "ABVGDEEZIYKLMNOPRSTUFH'IEI");
    // Затем - "многосимвольные".
    $st=strtr($st,
                    array(
                        "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
                        "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
                        "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
                        "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
                        "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
                        )
             );

    // Возвращаем результат.
    return $st;
  }

function encode_gl($text) {
    echo "<style type=\"text/css\" media=\"all\">
    @import \"glossary/global.css\";
    </style>";
    echo "<script src=\"glossary/jquery.js\" type=\"text/javascript\"></script>"
    ."<script src=\"glossary/jtip.js\" type=\"text/javascript\"></script>";
   $text = preg_replace("#\[gl\](.*?)\[/gl\]#is", "<a href=\"".encodestring('$1')."\">$1</a>", $text);
   return $text;
}


если в куче текста находятся слова в тегах [gl] то надо его сделать ссылкой и в ссылке транслитом а оно не работает так .почему подскажите

   
 
 автор: AcidTrash   (11.06.2008 в 13:31)   письмо автору
 
   для: dirol   (11.06.2008 в 09:46)
 

Используйте модификатор e в функции preg_replace.
<?php
function encodestring($st)
  {
    
// Сначала заменяем "односимвольные" фонемы.
    
$st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",
    
"abvgdeeziyklmnoprstufh'iei");
    
$st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
    
"ABVGDEEZIYKLMNOPRSTUFH'IEI");
    
// Затем - "многосимвольные".
    
$st=strtr($st,
                    array(
                        
"ж"=>"zh""ц"=>"ts""ч"=>"ch""ш"=>"sh",
                        
"щ"=>"shch","ь"=>"""ю"=>"yu""я"=>"ya",
                        
"Ж"=>"ZH""Ц"=>"TS""Ч"=>"CH""Ш"=>"SH",
                        
"Щ"=>"SHCH","Ь"=>"""Ю"=>"YU""Я"=>"YA",
                        
"ї"=>"i""Ї"=>"Yi""є"=>"ie""Є"=>"Ye"
                        
)
             );

    
// Возвращаем результат.
    
return $st;
  }

function 
encode_gl($text) {
    echo 
"<style type=\"text/css\" media=\"all\">
    @import \"glossary/global.css\";
    </style>"
;
    echo 
"<script src=\"glossary/jquery.js\" type=\"text/javascript\"></script>"
    
."<script src=\"glossary/jtip.js\" type=\"text/javascript\"></script>";
   
$text preg_replace("#\[gl\](.*?)\[/gl\]#se""'<a href=\''.encodestring(\\1).'\'>\\1</a>'"$text);
   return 
$text;
}

$text="[gl]Слово[/gl]";
print 
encode_gl($text);
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования