|
|
|
|
|
для: sim5
(04.06.2009 в 14:21)
| | Большого то и не составляет, но решено пока оставить выбор размера за пользователем.
В любом случае ваше мнение учтем в случае модификации ;-) | |
|
|
|
|
|
|
|
для: Loki
(04.06.2009 в 14:19)
| | Обкатаем вариант. Спасибо за помощь! =) | |
|
|
|
|
|
|
|
для: fmndkn
(04.06.2009 в 14:17)
| | Неужто это такая проблема в блоке, который принимает данные определиться с размером картинки и прочая? По моему вы сами себе проблему надумали, и ее решение у вас сейчас сложнее, чем могло бы быть. | |
|
|
|
|
|
|
|
для: fmndkn
(04.06.2009 в 14:14)
| | В общем, я сократил до чего-то такого
<?
$str = preg_split("[(<img[^>]*[^>]*>)]", $arResult["Post"]["textFormated"],-1,PREG_SPLIT_DELIM_CAPTURE);
$final_text="";
foreach($str as $keym => $arStr)
{
if (preg_match('/<img\s+src="([^"]+)"\s+title="([^"]*)"\s+alt="([^"]*)"\s+width="([^"]*)"\s+height="([^"]*)">/i', $arStr, $info))
{
print_r($info);
/*Array
(
[0] => <img src="/blog/d97/nav_logo4.png" title="156143312" alt="" width="168" height="119"
[1] => /blog/d97/nav_logo4.png //src
[2] => 156143312 //title
[3] => //alt
[4] => 168 //width
[5] => 119 //height
)*/
$final_text.=...// тут итоговый код на основе массива $info
}
else $final_text.=$arStr;
}
|
На самом деле есть способ еще красивше - через preg_match_all, но мне почему-то кажется что этот будет работать быстрее. | |
|
|
|
|
|
|
|
для: sim5
(04.06.2009 в 14:13)
| | >> Вопрос - почему нужно парсить уже готовое, а не сделать это во время добавления записи и загрузки картинок?
Тоже об этом думал, проблема в том, что при редактировании поста нужно вернуть все обратно, поскольку работа с картинками ведется в отдельном блоке. Объем работы увеличивается в два раза, и там тоже заморочки. Проще парсить только то, что выводится пользователю. | |
|
|
|
|
|
|
|
для: Loki
(04.06.2009 в 14:07)
| | Последовательность всегда одинакова, разница только в наличии или отсутствии текста (например alt=" "). Отличие картинки пользователя от картинки смайла - наличие в тэге " border="0" "
Главная задача вычленить картинки пользователя, собрать все данные о ней, и произвести свою сборку картинки. | |
|
|
|
|
|
|
|
для: fmndkn
(04.06.2009 в 13:27)
| | >Создаётся пост в блоге (текст картинки смайлы - как обычно). Ширина поля вывода поста ограничена, человек же может добавить картинку....
Вопрос - почему нужно парсить уже готовое, а не сделать это во время добавления записи и загрузки картинок? | |
|
|
|
|
|
|
|
для: fmndkn
(04.06.2009 в 13:54)
| | В строке
<img src="/blog/d97/nav_logo4.png" title="156143312" alt="" width="168" height="119">
|
Последовательность элементов всегда одинаковая? Какие-то элементы могут меняться местами или отсутствовать? | |
|
|
|
|
|
|
|
для: Loki
(04.06.2009 в 13:40)
| | Да пожалуй
Текст до форматирования:
text text text text text text text text text<br>
<img src="/blog/d97/nav_logo4.png" title="156143312" alt="" width="168" height="119">
text text text text text text text text text text text text
<img src="/blog/d97/nav_logo4.png" title="156143312" alt="" width="168" height="119">
<img src="/blog/d97/nav_logo4.png" title="156143312" alt="" width="168" height="119">
text text text text text text text text text text text text text text text text text text text text text text text text
<img src="/images/blog/smile/bl.gif" alt="" border="0">
text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text
<br>
<img src="/images/blog/smile/aj.gif" alt="" border="0">
|
После работы кода:
text text text text text text text text text<br>
<div style="margin: 5px 0pt;" align="center">
<a class="gallery" href="/blog/d97/nav_logo4.png" title="156143312">
<img alt="" src="/images/images_res.php?s=/blog/d97/nav_logo4.png&w=168&h=119" title="156143312">
</a></div>
text text text text text text text text text text text text
<div style="margin: 5px 0pt;" align="center">
<a class="gallery" href="/blog/d97/nav_logo4.png" title="156143312">
<img alt="" src="/images/images_res.php?s=/blog/d97/nav_logo4.png&w=168&h=119" title="156143312">
</a></div>
<div style="margin: 5px 0pt;" align="center">
<a class="gallery" href="/blog/d97/nav_logo4.png" title="156143312">
<img alt="" src="/images/images_res.php?s=/blog/d97/nav_logo4.png&w=168&h=119" title="156143312"></a>
</div>
text text text text text text text text text text text text text text text text text text text text text text text text
<img src="/images/blog/smile/bl.gif" alt="" border="0">
text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text
<br>
<img src="/images/blog/smile/aj.gif" alt="" border="0">
|
Жирным - выделен участок над которым велись изменения.
Курсивом - тот участок, который был исключен функцией из обработки, т.к. является смайлом и изменять его не нужно (в коде за это отвечает условие
$st1 = strpos($arStr,"border");
if($st1<=0))
{
...............
}
| ) | |
|
|
|
|
|
|
|
для: fmndkn
(04.06.2009 в 13:27)
| | Может лучше привести пример исходного и финального текста? А то разбирать что делает код, думаю, лень не мне одному... | |
|
|
|
|