Помогите разобраться с выборкой урла картинки

Автор kak2z, 05 июля 2012, 19:51:22

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kak2z

Ну собственно у меня все вложения загружаются на внешний фотохостинг. Сейчас надо сделать функцию которая будет из сообщения брать первую картинку и возвращать ее ссылку..

function get_first_img($str){
$pos1 = strpos($str, "[img");  //нашли позицию первого тега
$pos2 = strpos($str, "img]"); //нашли позицию второго закрывающигося тега
$num_img = $pos2-$pos1+4;  //добавили 4 символа что бы тег не обрезало
$res_img = mb_substr($str, $pos1,$num_img); //взяли из текста часть с ссылкой
$pos3 = strpos($res_img, "http"); //дальше обрезаем теги img
$pos4 = strpos($res_img, "[/img]");
$num_img1 = $pos4-$pos3;
$link_img = mb_substr($res_img, $pos3,$num_img1);
return $link_img;  //возвращаем линк на картинку
}


в общем как то странно.. в одни сообщениях работает, в других нет. особенно заметно не "работание" на сообщениях где только одна картинка и нет текста.. где я набочинил и как можно сделать лучше и правильнее)) спасибо.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

1. Из каких соображений с два захода обрезание?
2. А если в ссылке не указан протокол?
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Цитата: maestrosite.ru от 06 июля 2012, 12:10:55
1. Из каких соображений с два захода обрезание?
а я не знаю) подумал что по другому значение в теге вы вырезать

Цитата: maestrosite.ru от 06 июля 2012, 12:10:55
2. А если в ссылке не указан протокол?
а тоже не знаю)) подскажите как лучше)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

Я бы отрубил хвост - [/img], затем голову до первого с хвоста - ]. Далее проверка формата url.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru