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

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

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

 

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

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

тема: красивый текст
 
 автор: linea   (10.08.2007 в 15:02)   письмо автору
 
 

Значит из файла читается некий текст, задача заменить заглавные буквы (и русские, и латинские) на картинки соответствующих букв из определенного каталога
Как это сделать прилично? Не знаю с какой стороны подойти к задаче.

   
 
 автор: kasmanaft   (10.08.2007 в 15:37)   письмо автору
 
   для: linea   (10.08.2007 в 15:02)
 

Что-то вроде
$text = preg_replace("#[A-ZА-ЯЁ]#", '<img src="$0.jpg">', $text);
Картинки зовутся A.jpg, B.jpg, ...

хм... а для поддержки русских букв смотрите в сторону preg_replace_callback()

   
 
 автор: SHAman   (10.08.2007 в 17:24)   письмо автору
 
   для: kasmanaft   (10.08.2007 в 15:37)
 

Зачем же preg_replace_callback()? По-идее, нужно просто выставить локаль.

   
 
 автор: kasmanaft   (10.08.2007 в 17:30)   письмо автору
 
   для: SHAman   (10.08.2007 в 17:24)
 

Чтоб не пришлось называть картинки русскими буквами.. Ё.jpg, например.
Хотя, работать будет, скорее всего, и так.

А может быть для этого проще использовать str_replace..

   
 
 автор: linea   (13.08.2007 в 09:58)   письмо автору
 
   для: SHAman   (10.08.2007 в 17:24)
 

Можно на пальцах и по-подробнее????
если например так написано

<?php
// Извлекаем содержимое из файла 
  
$content file_get_contents('text.txt');

  
// что ищем
  
$search = array ("[A-Z]",  "[А-Я]");
 
// заменяем
 
$replace = array ('"img src=/PIC/O.gif", и т.д');

 
$content_final preg_replace($search,  $replace,
                          
$content);

 print (
$content_final);
  
?>


   
 
 автор: Trianon   (13.08.2007 в 10:55)   письмо автору
 
   для: linea   (13.08.2007 в 09:58)
 

<?
 
// $text = file_get_contents('text.txt'); 
 
$text "Это Пример... <br> This Is An Example...<br>";
 
$ptrn "/([A-ZА-ЯЁ])/e";
 
$repl "('<img src=pic/'.(ord('\\1') < 127 ? '\\1': ord('\\1')).'.jpg />')";
echo 
preg_replace($ptrn$repl$text );

для utf-8 будет чуть по-другому... нужно будет еще и длину проверить.

   
 
 автор: linea   (13.08.2007 в 17:08)   письмо автору
 
   для: Trianon   (13.08.2007 в 10:55)
 

Работает с латиницей, кириллица нет. :-( судя по появившимся значкам картинок проблема именно в названиях картинок... :-(
Trianonу очередное спасибо за идею... (последнее было про csv :-))

   
 
 автор: Unkind   (13.08.2007 в 18:10)   письмо автору
 
   для: linea   (13.08.2007 в 17:08)
 

А какая у Вас кодировка текста? Если windows-1251, то код Trianon'а подразумевает, что буквы А-Я имеют такие названия:
А - 192.jpg
Б - 193.jpg
В - 194.jpg
Г - 195.jpg
Д - 196.jpg
Е - 197.jpg
Ё - 168.jpg
Ж - 198.jpg
З - 199.jpg
И - 200.jpg
Й - 201.jpg
К - 202.jpg
Л - 203.jpg
М - 204.jpg
Н - 205.jpg
О - 206.jpg
П - 207.jpg
Р - 208.jpg
С - 209.jpg
Т - 210.jpg
У - 211.jpg
Ф - 212.jpg
Х - 213.jpg
Ц - 214.jpg
Ч - 215.jpg
Ш - 216.jpg
Щ - 217.jpg
Ъ - 218.jpg
Ы - 219.jpg
Ь - 220.jpg
Э - 221.jpg
Ю - 222.jpg
Я - 223.jpg

   
 
 автор: Trianon   (13.08.2007 в 20:18)   письмо автору
 
   для: Unkind   (13.08.2007 в 18:10)
 

Буквица Йоооо у мну тоже работает. :)
168.jpg - чтоб не соврать...

   
 
 автор: Unkind   (13.08.2007 в 20:24)   письмо автору
 
   для: Trianon   (13.08.2007 в 20:18)
 

Ё - 168.jpg
Таки вроде есть.

   
 
 автор: Trianon   (13.08.2007 в 20:20)   письмо автору
 
   для: linea   (13.08.2007 в 17:08)
 

>Работает с латиницей, кириллица нет. :-( судя по появившимся значкам картинок проблема именно в названиях картинок... :-(
В большинстве случаев применение национальных алфавитов для именования файлов следует избегать. Поэтому для русского там номера символов по кодовой таблице. (см. дополнение Unkind'а )

>Trianonу очередное спасибо за идею... (последнее было про csv :-))
На здоровье, конечно.
Только почему-то я Вас не припоминаю.
Маска, кто ты? :)

   
 
 автор: linea   (15.08.2007 в 14:39)   письмо автору
 
   для: Trianon   (13.08.2007 в 20:20)
 

спасибки.

кодировка, естественно, win-1251 :-)

>Trianonу очередное спасибо за идею... (последнее было про csv :-))
>На здоровье, конечно.
>Только почему-то я Вас не припоминаю.
>Маска, кто ты? :)
CSV с извращением :-) ,была такая тема на форуме

   
Rambler's Top100
вверх

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