|
|
|
| Имеем строку имен-фамилий перечисленных через запятую.
[Андрей Николаевич] Колмогоров, [Джон] ван Линт, [Роджер] Пенроуз
Как в этой строке заменить имена (находятся в квадратных скобках) на инициалы?
т.е. чтобы получилось так:
А. Н. Колмогоров, Д. ван Линт, Р. Пенроуз | |
|
|
|
|
|
|
|
для: illuzion
(22.09.2009 в 21:27)
| | В реальности квадратных кавычек нет или текст прямо с кавычками идет? | |
|
|
|
|
|
|
|
для: cheops
(22.09.2009 в 21:48)
| | Прямо с кавычками. Я их так из БД достаю. | |
|
|
|
|
|
|
|
для: 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];
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(22.09.2009 в 22:13)
| | Большое спасибо! | |
|
|
|