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

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

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

 

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

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

тема: Преобразование имен в инициалы
 
 автор: illuzion   (22.09.2009 в 21:27)   письмо автору
 
 

Имеем строку имен-фамилий перечисленных через запятую.

[Андрей Николаевич] Колмогоров, [Джон] ван Линт, [Роджер] Пенроуз

Как в этой строке заменить имена (находятся в квадратных скобках) на инициалы?
т.е. чтобы получилось так:

А. Н. Колмогоров, Д. ван Линт, Р. Пенроуз

  Ответить  
 
 автор: cheops   (22.09.2009 в 21:48)   письмо автору
 
   для: illuzion   (22.09.2009 в 21:27)
 

В реальности квадратных кавычек нет или текст прямо с кавычками идет?

  Ответить  
 
 автор: illuzion   (22.09.2009 в 21:59)   письмо автору
 
   для: cheops   (22.09.2009 в 21:48)
 

Прямо с кавычками. Я их так из БД достаю.

  Ответить  
 
 автор: cheops   (22.09.2009 в 22:13)   письмо автору
 
   для: illuzion   (22.09.2009 в 21:59)
 

Можно отталкиваться от следующего скрипта
<?php 
  $text 
"[Андрей Николаевич] Колмогоров, [Джон] ван Линт, [Роджер] Пенроуз";
  
$pattern "|\[(.*?)\]|is";
  
$text preg_replace_callback($pattern"initial"$text);
  echo 
$text;

  function 
initial($out)
  {
    
$init explode(" "$out[1]);
    
$result = array();
    if(
is_array($init) && !empty($init))
    {
      for(
$i 0$i count($init); $i++)
      {
        
$result[] = $init[$i][0].".";
      }
      if(!empty(
$result)) return implode(" "$result);
      else return 
$out[0];
    }
    else return 
$out[0];
  }
?>

  Ответить  
 
 автор: illuzion   (22.09.2009 в 22:45)   письмо автору
 
   для: cheops   (22.09.2009 в 22:13)
 

Большое спасибо!

  Ответить  
Rambler's Top100
вверх

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