aybulat
30.01.2009 - 16:06
Появилась проблема разбиения тескта на 2 части.
Есть Статья, которую надо разбить на 2 части. Первая часть будет кратким описанием, для этого из общей статьи нужно выделить первое предложение заканчивающееся точкой.
Проблема в том что
1.Статья может начинатся с картинки (где точка тоже может встретится).
2.Кроме того статья не одна их несколько и что будет непосредственно после точки тоже не известно.
Вот пример текста статьи:
HTML |
<img src="http://www.site.ru/3.jpg"> Текст1.</br>Текст2 |
Здесь нужно выделить 'Текст1.'
Пытался сначала выкинуть все теги из текста, потом искать просто точку, но при этом теряется позиция этой точки в изначальном тексте и разбить текст по ней уже не получается. Сейчас наибольшие проблемы доставляет 2-й пункт.
Спустя 1 час, 53 минуты, 29 секунд (30.01.2009 - 17:00) FatCat написал(а):
1. "Очистить" все теги, оставив только скобки:
PHP |
$txt = preg_replace( "#<(.+?)>#is", "<>", $txt ); |
2. Эксплодить по точке; взять первое значение, эксплодить его по <> и взять последнее значение. Добавить ему точку в конец. Например, звать его будут $key
3. Добавить разбивку после первого вхождения $key в строку $txt.
Спустя 1 час, 10 минут, 23 секунды (30.01.2009 - 18:10) aybulat написал(а):
Сразу такой вопрос:
После выделения исходный текст должен остатся таким
HTML |
<img src="http://www.site.ru/3.jpg"> </br>Текст2 |
то есть уже без вырезанного из него выделенного предложения.
Это учитывается?
Кроме того первое предложение само может содержать теги, например гиперссылки поэтому 3 пункт может не пройти.
Опишу задачу подробнее на общем примере
HTML |
<img src="http://www.site.ru/3.jpg"> Вводный<a href='...'>ссылка</a>текст.</br>Текст2<img src="http://www.site.ru/7.jpg"> |
В результате должны остатся 2 переменный
1.
HTML |
<img src="http://www.site.ru/3.jpg"></br>Текст2<img src="http://www.site.ru/7.jpg"> |
2.
HTML |
Вводный<a href='...'>ссылка</a>текст. |
Спустя 43 минуты, 12 секунд (30.01.2009 - 18:53) FatCat написал(а):
Цитата (aybulat @ 30.01.2009 - 15:06) |
разбить на 2 части |
Цитата (aybulat @ 30.01.2009 - 18:10) |
В результате должны остатся 2 переменный 1.
HTML <img src="http://www.site.ru/3.jpg"></br>Текст2<img src="http://www.site.ru/7.jpg"> |
Варианты взаимоисключающие.
В связи с отсутствием телепатических способностей, катапультируюсь из этой темы.
Спустя 2 часа, 41 минута, 14 секунд (30.01.2009 - 21:35) aybulat написал(а):
Почему взаимоисключающие? Один текст надо поделить на 2 части и записать их соответственно в 2 переменные.
Спустя 4 минуты, 21 секунда (30.01.2009 - 21:39) kirik написал(а):
aybulat, так прокатит?
PHP |
$str = '<img src="http://www.site.ru/3.jpg"> Вводный<a href="...">ссылка</a>текст.<br />Текст2<img src="http://www.site.ru/7.jpg">'; preg_match_all('/(\<img [^\>]+\>)([^\<]+\<a [^\>]+\>[^\<]+\<\/a\>[^\<]+)(\<br \/\>[^\<]+\<img [^\>]+\>)/', $str, $out, PREG_SET_ORDER); $var1 = $out[0][1].$out[0][3]; $var2 = $out[0][2]; unset($out);
echo "<pre><xmp>First variable - {$var1}\nSecond variable - {$var2}"; |