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

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

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Чистка текста

Сообщения:  [1-10]   [11-17] 

 
 автор: confirm   (30.09.2013 в 18:48)   письмо автору
 
   для: TetRiska   (30.09.2013 в 17:08)
 

<?
$str 
explode('</p>'$str2);
$str[0] = explode('&bull;'$str[0]);
$str array_shift($str[0]).'</p><ul><li>'.implode('</li><li>'$str[0]).'</li></ul>'.$str[1];

  Ответить  
 
 автор: TetRiska   (30.09.2013 в 17:08)   письмо автору
 
   для: confirm   (12.09.2013 в 00:58)
 

появилось время на разбор этого примера, никак не получается обработать небольшой текст там, где есть уже хтмл теги:

<p>Основні переваги &bull; Надійність та довговічність; &bull; Використання новітніх технологій; &bull; Висока продуктивність при низьких експлуатаційних витратах; &bull; Моделі серії 2Y6x8B, 2Y6x8D, 2Y8x10B, 2Y8x10D, є двоколісним статичним дорожнім котком з механічним приводом; &bull; Моделі LGS1822B, LGU2124, LGU1822, є трехвальцевими статичними дорожніми котками з повногідравлічним приводом.</p>
<p>Дана серія <strong>котків</strong> комплектується двигунами <u>Ricardo</u> (Великобританія) зробленими за ліцензією. Двигуни виробляються із застосуванням сучасних технологій та з гарантією сертифікації якості продукції; Простора і зручна кабіна оператора комплектується системою провітрювання і кондиціонування повітря (на замовлення);</p>
<p><strong><u>Технiчнi характеристики катка YTO:</u></strong></p>
<ul>
<li>Модель LGS1822B LGU2124 LGU182 2Y6x8B 2Y6x8D 2Y8x10B 2Y8x10D</li>
<li>Максимальна робоча вага, кг 22000 24000 22000 8000 8000 10000 10000</li>
<li>Мінімальна робоча вага, н/см 18000 21000 18000 6000 6000 8000 8000</li>
<li>Статичне лінійне навантаження (задній валець), н/см 920/1100 1010/1200 920/1100 295/410 295/410 410/500 410/500</li>
<li>Статичне лінійне навантаження (передній валець), н/см 400/500 450/540 400/500 177/237 177/237 230/310 230/310</li>
<li>Швидкість руху, км/год 9.6 9.6 9.6 4 4 4 4</li>
<li>Здатність долати підйом, % 20 20 20 20 20 20 20</li>
<li>Радіус розвороту, мм 6640 6780 6780 6500 6500 6500 6500</li>
<li>Колісна база, мм 3330 3350 3350 3150 3150 3150 3150</li>
<li>Дорожній просвіт, мм 473 425 425 320 320 320 320</li>
<li>Тип двигуна Дизель</li>
<li>Модель двигуна LRC6105 LRC6105 LRC6105 495AY 4BT3.9-C80 495AY 4BT3.9-C80</li>
<li>Потужність двигуна, kW/(к.с) 90 (122) 90 (122) 90 (122) 36.75 (50) 60(82) 36.75 (50) 60(82)</li>
<li>Загальні габарити (ДхШхВ), мм 6200x 2300x 2995 5724x 2300x 3079 5724x 2300x 3079 4500x 1580x 2660 4500x 1580x 2660 4500x 1580x 2660 4500x 1580x 2660</li>
</ul>[/code]
на выходе должно получится:
[code]<p>Основні переваги</p>
<ul>
<li>Надійність та довговічність;</li>
<li>Використання новітніх технологій;</li>
<li>Висока продуктивність при низьких експлуатаційних витратах;</li>
<li>Моделі серії 2Y6x8B, 2Y6x8D, 2Y8x10B, 2Y8x10D, є двоколісним статичним дорожнім котком з механічним приводом;</li>
<li>Моделі LGS1822B, LGU2124, LGU1822, є трехвальцевими статичними дорожніми котками з повногідравлічним приводом.</li>
</ul>
<p>Дана серія <strong>котків</strong> комплектується двигунами <u>Ricardo</u> (Великобританія) зробленими за ліцензією. Двигуни виробляються із застосуванням сучасних технологій та з гарантією сертифікації якості продукції. Простора і зручна кабіна оператора комплектується системою провітрювання і кондиціонування повітря (на замовлення).</p>
<p><strong><u>Технiчнi характеристики катка YTO:</u></strong></p>
<ul>
<li>Модель LGS1822B LGU2124 LGU182 2Y6x8B 2Y6x8D 2Y8x10B 2Y8x10D</li>
<li>Максимальна робоча вага, кг 22000 24000 22000 8000 8000 10000 10000</li>
<li>Мінімальна робоча вага, н/см 18000 21000 18000 6000 6000 8000 8000</li>
<li>Статичне лінійне навантаження (задній валець), н/см 920/1100 1010/1200 920/1100 295/410 295/410 410/500 410/500</li>
<li>Статичне лінійне навантаження (передній валець), н/см 400/500 450/540 400/500 177/237 177/237 230/310 230/310</li>
<li>Швидкість руху, км/год 9.6 9.6 9.6 4 4 4 4</li>
<li>Здатність долати підйом, % 20 20 20 20 20 20 20</li>
<li>Радіус розвороту, мм 6640 6780 6780 6500 6500 6500 6500</li>
<li>Колісна база, мм 3330 3350 3350 3150 3150 3150 3150</li>
<li>Дорожній просвіт, мм 473 425 425 320 320 320 320</li>
<li>Тип двигуна Дизель</li>
<li>Модель двигуна LRC6105 LRC6105 LRC6105 495AY 4BT3.9-C80 495AY 4BT3.9-C80</li>
<li>Потужність двигуна, kW/(к.с) 90 (122) 90 (122) 90 (122) 36.75 (50) 60(82) 36.75 (50) 60(82)</li>
<li>Загальні габарити (ДхШхВ), мм 6200x 2300x 2995 5724x 2300x 3079 5724x 2300x 3079 4500x 1580x 2660 4500x 1580x 2660 4500x 1580x 2660 4500x 1580x 2660</li>
</ul>


и скажите мне, такое вообще возможно скриптом обработать или вручную? :( вручную придется пару десятков тыс. пройти тогда, что нереально

  Ответить  
 
 автор: TetRiska   (12.09.2013 в 02:04)   письмо автору
 
   для: confirm   (12.09.2013 в 00:58)
 

спасибо за помощь и советы, на работе попробую прогнать пару сотен строк с просмотром на экране, может еще что-то всплывет, а то черт знает что писалось в эту базу ранее :(

  Ответить  
 
 автор: confirm   (12.09.2013 в 00:58)   письмо автору
 
   для: TetRiska   (12.09.2013 в 00:57)
 

Да.

  Ответить  
 
 автор: TetRiska   (12.09.2013 в 00:57)   письмо автору
 
   для: confirm   (11.09.2013 в 23:32)
 

как то так?
$p = '<p>'.implode('</p><p>', 
array_diff(array_map('trim', explode("\n", 
array_shift($s))), array( '' ))).'</p>';

  Ответить  
 
 автор: confirm   (11.09.2013 в 23:32)   письмо автору
 
   для: TetRiska   (11.09.2013 в 23:29)
 

Можно и array_filter, но проще вычесть из массива пустые элементы функцией array_diff.

  Ответить  
 
 автор: TetRiska   (11.09.2013 в 23:29)   письмо автору
 
   для: confirm   (11.09.2013 в 21:21)
 

да, точно Unix, сделал так:
$p = '<p>'.implode('</p><p>', 
array_filter(array_map('trim', explode("\n", 
array_shift($s))))).'</p>';

array_filter годится для очистки от пустых элементов?

вышло так:
<p>Соответствие модели авто: ВАЗ 2121 &quot;Нива&quot;</p><p>Технические характеристики</p><ul><li>Номенклатурный номер П910Ш0SB1015000</li><li>Условное обозначение 2121-3101015-02</li><li>Посадочный диаметр 16</li><li>Рекомендуемая шина 6.95-16 175/80R16</li><li>Диаметр центрального отверстия D1, мм 98</li><li>Диаметр расположения крепежных отверстий D2, мм 139.7</li><li>Диаметр крепежого отверстия d, мм 15</li><li>Тип фаски, град./мм 60°</li><li>Число крепежных отверстий 5</li><li>Вылет ЕТ, мм 58</li><li>Масса, кг 9.100</li><li>Типоразмер 5Jx16</li></ul>

  Ответить  
 
 автор: confirm   (11.09.2013 в 21:21)   письмо автору
 
   для: TetRiska   (11.09.2013 в 20:51)
 

Значит ваш текст имеет код перехода на строку не Win (\r\n), а Unix. Замените для explode "\r\n" на "\n", и добавьте удаление пустых элементов массива.

  Ответить  
 
 автор: TetRiska   (11.09.2013 в 20:51)   письмо автору
 
   для: confirm   (11.09.2013 в 18:14)
 

У меня вывело так:
<p>Соответствие модели авто: ВАЗ 2121 &quot;Нива&quot; 

Технические характеристики</p><ul><li>Номенклатурный номер    П910Ш0SB1015000</li><li>Условное обозначение    2121-3101015-02</li><li>Посадочный диаметр    16</li><li>Рекомендуемая шина    6.95-16 175/80R16</li><li>Диаметр центрального отверстия D1, мм    98</li><li>Диаметр расположения крепежных отверстий D2, мм    139.7</li><li>Диаметр крепежого отверстия d, мм    15</li><li>Тип фаски, град./мм    60°</li><li>Число крепежных отверстий    5</li><li>Вылет ЕТ, мм    58</li><li>Масса, кг    9.100</li><li>Типоразмер    5Jx16</li></ul>

  Ответить  
 
 автор: confirm   (11.09.2013 в 18:14)   письмо автору
 
   для: TetRiska   (11.09.2013 в 16:39)
 

Почему не берет, вот результат:
<p>Соответствие модели авто: ВАЗ 2121 &quot;Нива&quot;</p><p></p><p>Технические характеристики</p>
И лишний параграф, это потому, что переводов строк не одна, а значит после разбиения на массив по переводу строки, нужно очистить массив от пустых элементов.

  Ответить  

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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