Автор Тема: Оформление текстов  (Прочитано 3946 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kama

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kama.artcore.ru
Оформление текстов
« : 08 Октября 2002, 09:29:52 »
Недавно вышедший "Типограф" Лебедева, заставил задуматься о правильном оформлении текстов для Веба. Для обработки кавычек можно использовать скрипт  Spectator\'a. А вот как сделать вставку nbsp вместо пробела между предлогом и словом? Да и вообще - кто какие методы использует?

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Оформление текстов
« Ответ #1 : 08 Октября 2002, 11:15:42 »
Руки...
AS IS...

Оффлайн kama

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kama.artcore.ru
Оформление текстов
« Ответ #2 : 08 Октября 2002, 11:20:13 »
А если текстов много и они довольно объемные?

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Оформление текстов
« Ответ #3 : 08 Октября 2002, 11:33:06 »
kama
Ну для задачи, описанной в посте достаточно использовать регулярку. И скрипт Spectator\'a :)
AS IS...

Оффлайн alex_gr

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 1
  • +0/-0
  • 0
    • Просмотр профиля
Оформление текстов
« Ответ #4 : 08 Октября 2002, 11:48:43 »
пусть у тебя есть массив всех предлогов
$predlogi=array(...); // массив предлогов
$content="..."; // контент

foreach ($predlogi as $predlog)
$content=str_replace($predlog." ",$predlog." ",$content);

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Оформление текстов
« Ответ #5 : 08 Октября 2002, 12:07:48 »
alex_gr
Хм...
А не проще ли регуляркой пройтись по тексту. У тебя же предлги не более трех символов и не содержат цифр.
AS IS...

Оффлайн kama

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kama.artcore.ru
Оформление текстов
« Ответ #6 : 08 Октября 2002, 12:11:02 »
Пока сделали так:

function parse_content ($contents

$contents=preg_replace "/<([^>]*)>/es""\'<\'.str_replace (\'\\\\\\"\', \'&#9488;\',\'\\\\1\').\'>\'", $contents); 
$contents=preg_replace ( "/<code>(.*?)<\\/code>/es", "\'<code>\'.str_replace (\'\\\\\\"\', \'&#9488;\',\'\\\\1\').\'</code>\'", $contents); 
$contents=preg_replace ( "/([>(\\s])(\\")([^\\"]*)([^\\s\\"])(\\")/", " \\\\1<\\\\3\\\\4>", $contents); 
if (stristr ($contents, \'"\')): 
$contents=preg_replace ( "/([>(\\s])(\\")([^\\"]*)([^ \\"])(\\")/", " \\\\1<\\\\3\\\\4>", $contents); 
while (preg_match ("/(<)([^>]*)(<)/", $contents)) $contents=preg_replace ( "/(<)([^>]*)(<)([^>]*)(>)/", "\\\\1\\\\2&#132;\\\\4&#147;", $contents); 
endif; 
$contents = str_replace (\'<\',\'&laquo;\', $contents); 
$contents = str_replace (\'>\',\'&raquo;\', $contents); 
$contents = str_replace (\' - \',\' &#151; \', $contents); 
$contents = str_replace (\'&#9488;\',\'"\', $contents); 
$predlogs=array("а", "без", "более", "бы", "был", "была", "были", "было", "быть", "в", "вам", "вас", "весь", "во", "вот", "все", "всего", "всех", "вы", "где", "да", "даже", "для", "до", "его", "ее", "если", "есть", "еще", "же", "за", "здесь", "и", "из", "или", "им", "их", "к", "как", "ко", "когда", "кто", "ли", "либо", "мне", "может", "мы", "на", "надо", "наш", "не", "него", "нее", "нет", "ни", "них", "но", "ну", "о", "об", "однако", "он", "она", "они", "оно", "от", "очень", "по", "под", "при", "с", "со", "так", "также", "такой", "там", "те", "тем", "то", "того", "тоже", "той", "только", "том", "ты", "у", "уже", "хотя", "чего", "чей", "чем", "что", "чтобы", "чье", "чья", "эта", "эти", "это", "я");
foreach ($predlogs as $predlog)
$contents=str_replace(" ".$predlog." "," ".$predlog." ",$contents);
return $contents; 


 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28