Не получается сделать такой вариант обработки текста: У меня в базе сохранено описание для товара, в таком формате: Name: Mustek ScanEx. 1248UB /USB/600x1200/48bit/CIS bus Type : Color Flatbed , Single Pass Selectable resolution : 19200 dpi x 19200 dpi Optical resolution : 600 dpi (H) x 1200 dpi (V) Power supply: USB Powered Weight: 2,85 Kg Dimensions: 414 x 269 x 52 mm (L x W x H) Interface: USB 1.1 for PC and Mac OS requirement: Supports Microsoft Windows 98se , Me , 2000 , XP and MacOS MacOS 8.x, 9.x, X Classic Mode Я хотел сделать обработку этого описания таким образом, чтобы к примеру получилось так: HTML: <b>Name</b><br>Mustek ScanEx. 1248UB /USB/600x1200/48bit/CIS bus<br><br> <b>Type</b><br>Color Flatbed , Single Pass <br><br> e.t.c. Пробовал делать через preg_replace - Ничего не вышло. Помогите решить эту задачу... Спасибо.
Я возможно неправильно указал вариант хранения текста в базе: $mysql_Text = "Name: Mustek ScanEx. 1248UB /USB/600x1200/48bit/CIS bus Type : Color Flatbed , Single Pass Selectable resolution : 19200 dpi x 19200 dpi Optical resolution : 600 dpi (H) x 1200 dpi (V) Power supply: USB Powered Weight: 2,85 Kg Dimensions: 414 x 269 x 52 mm (L x W x H) Interface: USB 1.1 for PC and Mac OS requirement: Supports Microsoft Windows 98se , Me , 2000 , XP and MacOS MacOS 8.x, 9.x, X Classic Mode";
PHP: <? //connect to DB $q = mysql_query("SELECT * FROM table"); while ($row = mysql_fetch_object($q)){ echo "Type : $row->type<br>"; echo "Selectable resolution : $row->Selectable resolution<br>"; .... } ?>
Спасибо за ответы! Но есть одна проблема: Я неправильно задал вопрос, sorryy... Уберём базу из первого вопроса. Есть переменная которая содержит в себе текст описания товара, текст идёт скопом т.е. полностью всё описание записано в переменную, к примеру таких переменных много и всё в себе содержат разное описание, к примеру: $text = "Name: Sony Model: DG54"; или $text2 = "Type: modem wight: 14g size: 12m e.tc. "; И мне надо сделать обработчик для того текста который находится в переменной, который бы отделял названия до двоеточия и параметры после двоеточия. $text = "name1: par1 name2: par2 name3: par3 name4: par4 name5: par5 name6: par6 name7: par7"; $out = "<b>name1</b>par1<br><br> <b>name2</b>par2<br><br> <b>name3</b>par3<br><br> e.t.c.";
Ну почему же грабить, мне компания сама предоставляет эту информацию и я её записываю в базу, просто хочется сделать красивый вывод данных о товаре.
Bueno Чтобы расставить <br>, прогоните текст через функцию nl2br(), а для расстановки <b> регулярка - preg_replace('~<br>(.*?):~', '<br><b>$1:</b>', $text); В случае, если текст в таком виде, как Вы написали.
Сделал вот так, хотя это скорее всего неправильно.. )) PHP: $text = explode("\n",$text); for ($i = 0; $i < count($text); $i++) { $text[$i] = "<b>".$text[$i]; $text[$i] = str_replace(":","</b>:",$text[$i]); $text[$i] .= "<br /><br />"; } $text = implode("\n",$text); Но тоже работает.. )))))) А вот ещё неправильный, но рабочий вариант.. ))) PHP: $text = "<b>".$text; $text = str_replace("\n","\n<b>",$text); $text = str_replace(":","</b>:",$text); $text = str_replace("\n","<br /><br />\n",$text);
Раз уж на то пошло: PHP: $lines = explode("\r\n", $text); $text = ''; foreach($lines as $value) { $text2 = explode(':', $value); $text .= "<b>$text2[0]</b> $text2[1] <br><br>\r\n"; }
Всем привет! Всё работает замечательно, но я не учёл одну вещь в некоторых описаниях в одной строчке иногда проскакивают несколько двоеточий. Можно как то сделать чтобы скрипт в каждой строке использовал только первые двоеточия а остальные пропускал или заменял на что то? Использую этот вариант: PHP: $lines = explode("\r\n", $text); $text = ''; foreach($lines as $value) { $text2 = explode(':', $value); $text .= "<b>$text2[0]</b> $text2[1] <br><br>\r\n"; }