Забыли пароль?
Запросите новый здесь.

Автор темы: Zaxap
ID темы: 1849
Информация:
Тема содержит 16 сообщения, была просмотрена 4411 раз.
Просмотр темы
PHP-Fusion Russia » Веб-разработка » PHP
 Распечатать тему
Замена названия картинки в ссылке.
Zaxap
1. Имеется новость, краткое содержание которой примерно выглядит вот так:
Загрузить источник  GeSHi: HTML
  1. <p><img src="images/1234567890.png"></p>
Добавлено за 0.003 секунд, используя GeSHi 1.0.8.10


2. Имеется картинка поменьше - images/1234567890_tbig.png, лежащая в той же папке и отличающаяся от предыдущей названием (добавлен префикс _tbig) и размерами.

3. Имеется панель, которая берет содержимое из полной новости (т.е. изображение) (пункт 1), необходимо это вот изображение (т.е. ссылку на него в src) заменить (только в панели) на изображение с префиксом.

Как это сделать? По-моему объяснил довольно непонятно, но даже не знаю, как это понятнее объяснить.
Помогите, в общем.
Изменил(а) Zaxap, 25.10.2013 15:07
Зло не дремлет, а я добрый...
 
Razor
Если $url = 'images/1234567890.png';
то
Скачать исходники  Код

$url = 'images/1234567890.png';
$pieces = explode('.',$url);
$url =  $pieces[0].'_tbig.png';




Если $url = '<p><img src="images/1234567890.png"></p>';
то
Скачать исходники  Код

$url = '<p><img src="images/1234567890.png"></p>';
preg_match('/<img .*?(?=src)src=\"([^\"]+)\"/si', $url, $matches);
$pieces = explode('.',$matches[1]);
$url =  $pieces[0].'_tbig.png';



x1
 
Polarfox
alt обязателен по стандарту.
как и src но его никто не пропускает, странно.

http://www.w3schools.com/tags/tag_img.asp

давайте немного правильно делать.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
 
Web
Zaxap
Да я знаю сие =_=
Redactor от Кости и Ромы сего не делает, но ему зачем-то нужен пустой style=""...

Razor, спасибо огромное, но чего-то "ему" тут не нравится..: (кусочек кода)
Загрузить источник  GeSHi: PHP
  1. $url = nl2br(stripslashes($data['news_news']), 100);
  2. preg_match('/<img .*?(?=src)src=\"([^\"]+)\"/si', $url, $matches);
  3. $pieces = explode('.',$matches[1]);
  4. $url = $pieces[0].'_tbig.png';
  5.  
  6. if (dbrows($result)) {
  7. while ($data = dbarray($result)) {
  8. <div id='img_news'>".$pieces[0].'_tbig.png'."</div>\n";
  9. }
Добавлено за 0.033 секунд, используя GeSHi 1.0.8.10



Дайте, пожалуйста, правильный вариант кода...)) /тупой я/
Зло не дремлет, а я добрый...
 
Razor
Zaxap написал:

Да я знаю сие =_=
Redactor от Кости и Ромы сего не делает, но ему зачем-то нужен пустой style=""...

Razor, спасибо огромное, но чего-то "ему" тут не нравится..: (кусочек кода)
Загрузить источник  GeSHi: PHP
  1. $url = nl2br(stripslashes($data['news_news']), 100);
  2. preg_match('/<img .*?(?=src)src=\"([^\"]+)\"/si', $url, $matches);
  3. $pieces = explode('.',$matches[1]);
  4. $url = $pieces[0].'_tbig.png';
  5.  
  6. if (dbrows($result)) {
  7. while ($data = dbarray($result)) {
  8. <div id='img_news'>".$pieces[0].'_tbig.png'."</div>\n";
  9. }
Добавлено за 0.031 секунд, используя GeSHi 1.0.8.10



Дайте, пожалуйста, правильный вариант кода...)) /тупой я/

Ты объявляешь переменную $data после, а используешь до.
Скачать исходники  Код

if (dbrows($result)) {
    while ($data = dbarray($result)) {
        $url = nl2br(stripslashes($data['news_news']), 100);
        preg_match('/<img .*?(?=src)src=\"([^\"]+)\"/si', $url, $matches);
        $pieces = explode('.',$matches[1]);
        $url = $pieces[0].'_tbig.png';
        echo "<div id='img_news'><img src='".$url."' /></div>\n";
    }




Изменил(а) Razor, 25.10.2013 15:48
 
jikaka
Оффтопик если эта тема относится к редактору, то чего ты плодишь новые темы????? задавай вопросы в одной теме!!! бана давно не получал?

 
Web
Zaxap
Вроде, оно что-то оттуда берет, но ссылка вида "xn--d1acpja1a7g_tbig.png/" (неполный адрес сайта без какого-либо пути и имени картинки) - что-то не то =(

Оффтопик я ответил кратко polarfox'у, не пложу, "задачи" различны.

Изменил(а) Zaxap, 25.10.2013 16:02
Зло не дремлет, а я добрый...
 
Razor
Тогда я незнаю.
Если у вас "Что-то не получается", советуем "Что нибудь попробуйте"ab
 
Zaxap
Сделал так: <img src='".$pieces[0].$pieces[1]."_tbig.png' />, теперь лучше, но
заместо http://xn--d1acpja1a7g.xn--p1ai/uploads/images/20ef5aa5b213bb1b309716a942eff03b_tbig.jpg
выводит http://xn--d1acpja1a7g/uploads/images/20ef5aa5b213bb1b309716a942eff03b_tbig.png
(разрешение бы тоже собрать с картинки как-нибудь...) /дуб я/
Зло не дремлет, а я добрый...
 
Razor
Zaxap написал:

Сделал так: <img src='".$pieces[0].$pieces[1]."_tbig.png' />, теперь лучше, но
заместо http://xn--d1acpja1a7g.xn--p1ai/uploads/images/20ef5aa5b213bb1b309716a942eff03b_tbig.jpg
выводит http://xn--d1acpja1a7g/uploads/images/20ef5aa5b213bb1b309716a942eff03b_tbig.png
(разрешение бы тоже собрать с картинки как-нибудь...) /дуб я/


Скачать исходники  Код


if (dbrows($result)) {
    while ($data = dbarray($result)) {
        $url = nl2br(stripslashes($data['news_news']), 100);
        preg_match('/<img .*?(?=src)src=\"([^\"]+)\"/si', $url, $matches);
        $pieces = explode('.',$matches[1]);
        $url = $pieces[0].'_tbig.'.$pieces[1];
        echo "<div id='img_news'><img src='".$url."' /></div>\n";
    }




x1
 
Zaxap
http://xn--d1acpja1a7g_tbig.xn--p1ai/uploads/images/20ef5aa5b213bb1b309716a942eff03b

Туплю жестоко, но тут не расширение картинки берется....))

Если не знаете, как, сам порою - Вы дали мне дофига и больше=)
Зло не дремлет, а я добрый...
 
Razor
Zaxap написал:

http://xn--d1acpja1a7g_tbig.xn--p1ai/uploads/images/20ef5aa5b213bb1b309716a942eff03b

Туплю жестоко, но тут не расширение картинки берется....))

Если не знаете, как, сам порою - Вы дали мне дофига и больше=)

Для начала неплохо бы узнать, в каком всё таки виде хранятся src картинки в $data['news_news'], и скорее всего этой порнографии вообще не нужно, я думаю раз в папке неким образом существуют тамбы этих изображений, они также хранятся где-то в базе и их нужно выдернуть оттуда без шума и пыли.
Можешь скинуть например целиком код панели или чего там и для примера содержимое $data['news_news'], поправлю.
Изменил(а) Razor, 25.10.2013 16:20
 
Zaxap
Ну мне нужны именно они в определенных местах из определенной новости, т.е. картинка 1 из новости 1 должна быть в 1 блоке, 2 - во втором...
---
Путем подбора и логического мышления я сделал это!!!
Вот, если кому-нибудь когда-нибудь будет интересно...содержимое конечного $url:
Загрузить источник  GeSHi: PHP
  1. $url = $pieces[0].'.'.$pieces[1]."_tbig.".$pieces[2];
Добавлено за 0.035 секунд, используя GeSHi 1.0.8.10

Изменил(а) Zaxap, 25.10.2013 16:32
Зло не дремлет, а я добрый...
 
Razor
Изначально неправильно поставленная задача, ссылка была вида
<p><img src="http://xn--d1acpja1a7g_tbig.xn--p1ai/images/1234567890.png"></p>, что добавило нам дополнительную точку. Решение в данном случае не совсем корректное и подходит исключительно для данного случая до поры до времени.
Использовать бы не рекомендовал.
 
Zaxap
Razor, ну все хорошо ведь выводит...)) /в принципе, меня устраивает сие, пока что/
А ссылка как раз и есть такого вида, просто она "динамическая" (url картинки меняется, местами и расширение).
Ссылки на изображения в новостях всяких задаются обычно через http://, так что решение вполне приемлемоеab
Главное - суть ясна, а дальше уже подумать немного только=)

Спасибо большое за помощь! Тему, как говорится, можно закрыватьad
Изменил(а) Zaxap, 25.10.2013 17:20
Зло не дремлет, а я добрый...
 
Razor
Zaxap написал:

Razor, ну все хорошо ведь выводит...)) /в принципе, меня устраивает сие, пока что/
А ссылка как раз и есть такого вида, просто она "динамическая" (url картинки меняется, местами и расширение).
Ссылки на изображения в новостях всяких задаются обычно через http://, так что решение вполне приемлемоеab
Главное - суть ясна, а дальше уже подумать немного только=)

Спасибо большое за помощь! Тему, как говорится, можно закрыватьad

Выводит, но не хорошо. PHP - язык для домохозяек, нет строгих правил написания кода, что в других языках программирования недопустимо. Но на будущее советую пытаться понять то, что делаешь, иначе это тупиковый путь изучения языка.
$data['news_news'] у тебя содержит ссылку вида http://xn--d1acpja1a7g_tbig.xn--p1ai/uploads/images/20ef5aa5b213bb1b309716a942eff03b.png.
Правильным решением задачи, было бы вывести эту картинку из базы, а не парсить на ходу из контента подробной новости.
И пока ещё не поздно, советую начинать изучение языков с питона, будет сложнее так скажем, но не будет той каши в голове, которая может возникнуть от лояльности пыха, если конечно есть цель учиться программированию, а не написанию говнокода.
x1 x1
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Alex Alex (1,166)   Zaxap Zaxap (1,078)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)