Подскажите как заменить мне адрес картинки.
есть переменная
$post='какой то текст <img src="http://сайт.ру/1/2/3/4/5/6/7/a/g/изображение.jpg" alt="текст" title="текст"> какой то текст';как мне сделать что бы было
$post='какой то текст <img src="http://мой сайт.ру/папка 1/папка 2/папка 3/изображение.jpg" alt="текст" title="текст"> какой то текст';попробывал такое
$post = preg_replace("/(.*src=).*([a-z0-9_-]+\.[a-z0-9])(.*\>)/iU",'\1"http://мой сайт.ру/2012/03/07/\2\3',$post);меняет но вот так
$post='какой то текст <img src="http://мой сайт.ру/папка 1/папка 2/папка 3/сайт.ру/1/2/3/4/5/6/7/
a/g/изображение.jpg" alt="текст" title="текст"> какой то текст';
Спустя 44 минуты, 42 секунды (8.03.2012 - 09:59) kenscl12 написал(а):
ты хочешь чтоб в тексте была замена 1/2/3/4/5 на папка1/папка2 и тд ? или что?
Спустя 8 минут, 7 секунд (8.03.2012 - 10:07) devis написал(а):
ну не конкретно именно эти символы а любой адрес менялся на мой но файл оставался без изменений папки могут быть разные
А так вы верно подумали
А так вы верно подумали
Спустя 17 минут, 58 секунд (8.03.2012 - 10:25) kenscl12 написал(а):
$pattern = '#'
.preg_quote('http://').
'.*'.
preg_quote('.jpg').
'#iu';
$post = preg_replace($pattern ,'здесь пишешь втупую текст на который меняешь',$post);
Спустя 10 минут, 25 секунд (8.03.2012 - 10:36) devis написал(а):
Меняет но только таким образом :)
И вопрос такой если у меня изображение не .jpg а bmp, gif и т.д.
$post='какой то текст <img src="http://мой сайт.ру/папка 1/папка 2/папка 3/" alt="текст" title="текст"> какой то текст';короче говоря не подставляет сам файл
И вопрос такой если у меня изображение не .jpg а bmp, gif и т.д.
preg_quote('.|jpg|gif|bmp|').будет работать?
Спустя 16 минут, 11 секунд (8.03.2012 - 10:52) kenscl12 написал(а):
мы паттерном находим участок который заменить. после паттерна записывается то на что меняем.
вполне должно работать
preg_quote('.jpg|.gif|.bmp').
вполне должно работать
Спустя 2 минуты, 10 секунд (8.03.2012 - 10:54) devis написал(а):
Ну правильно мы находим полную ссылку на файл вместе с именем файла...
А файлы то разные по идее как то должен файл оставаться а он почему то сносится.
А файлы то разные по идее как то должен файл оставаться а он почему то сносится.
Спустя 6 минут, 26 секунд (8.03.2012 - 11:00) kenscl12 написал(а):
ааа файл оставаться... тогда
только что таким вариантом попробовал . поменялся адрес сайта без проблем
работает все
$pattern = '#'
.preg_quote('http://').
'.*'.
preg_quote('/') . '[a-zа-я]*'.
preg_quote('.jpg').
'#ius';
только что таким вариантом попробовал . поменялся адрес сайта без проблем
<?php
error_reporting(E_ALL);
header('Content-Type: text/html; charset=utf-8');
$post='какой то текст
<img src="http://сайт.ру/1/2/3/4/5/6/7/a/g/изображение.jpg" alt="текст" title="текст"> какой то текст';
$pattern = '#'
.preg_quote('http://').
'.*'.
preg_quote('/') . '[a-zа-я]*'.
preg_quote('.jpg').
'#ius';
$post = preg_replace($pattern ,'http://сайтуууууу.ру/1/2/3/4/5/6/7/a/g/изображение.jpg',$post);
echo htmlspecialchars($post);
?>
работает все
Спустя 3 минуты, 35 секунд (8.03.2012 - 11:04) devis написал(а):
а если кодировка win-1251? мож поэтому не меняет норм?
Спустя 3 минуты, 2 секунды (8.03.2012 - 11:07) kenscl12 написал(а):
думаю что регулярные выражения созданы и для кодировки 1251, посл вариант котор я кинул , он не меняет что ли у тебя?
если совсем заморочиться то
$post = ($pattern , на что меняем, iconv('windows-1251','utf-8',$post));
если совсем заморочиться то
$post = ($pattern , на что меняем, iconv('windows-1251','utf-8',$post));
Спустя 53 секунды (8.03.2012 - 11:08) devis написал(а):
почему то просто пустую выдает я ее сразу в скрипт делаю
Спустя 2 минуты, 1 секунда (8.03.2012 - 11:10) kenscl12 написал(а):
скинь мне кусок кода
Спустя 5 минут, 59 секунд (8.03.2012 - 11:16) devis написал(а):
_http://skuchnyh.net/addnew.zip вот сам файл
Спустя 13 минут, 53 секунды (8.03.2012 - 11:30) kenscl12 написал(а):
короче там капец у тя кода, не буду вникать. должно все меняться
Спустя 5 минут, 20 секунд (8.03.2012 - 11:35) kenscl12 написал(а):
можешь вот так еще попробовать
но там где у меня сайтууу и прочее написано в реплейсе, там вводишь путь в формате site.com/gfdgd/gdfgdf/gfdgfd без хттп и без имени файла и последнего слэша
$pattern = '#'
.preg_quote('http://').
'(.*'.
preg_quote('/') . ')[a-zа-я]*'.
preg_quote('.jpg').
'#ius';
$count = preg_match_all($pattern, $post, $matches);
$post = preg_replace('#'.$matches[1][0].'#iu' ,'сайтуууууу.ру/1/2/3/4/5/6/7/a/g/',$post);
но там где у меня сайтууу и прочее написано в реплейсе, там вводишь путь в формате site.com/gfdgd/gdfgdf/gfdgfd без хттп и без имени файла и последнего слэша
Спустя 20 минут, 50 секунд (8.03.2012 - 11:56) devis написал(а):
если я делаю по такому варианту тут ваще писец получается просто тупо текстом выводит 6 раз
мой сайт.ру/папка 1/папка 2/папка 3мой сайт.ру/папка 1/папка 2/папка 3мой сайт.ру/папка 1/папка 2/папка 3
мой сайт.ру/папка 1/папка 2/папка 3мой сайт.ру/папка 1/папка 2/папка 3мой сайт.ру/папка 1/папка 2/папка 3
Спустя 4 минуты, 45 секунд (8.03.2012 - 12:01) kenscl12 написал(а):
ну регулярка тут не причем, может там цикл у тебя гдето какойто или еще че
я толком не всматривался но пришла мысль, попробуй добавить жадный поиск и убрать u (u = кодировка utf-8, может кст поэтому косяк), т.е. #iu поменять на iU
я толком не всматривался но пришла мысль, попробуй добавить жадный поиск и убрать u (u = кодировка utf-8, может кст поэтому косяк), т.е. #iu поменять на iU
Спустя 23 минуты, 25 секунд (8.03.2012 - 12:24) devis написал(а):
не хочет
Спустя 10 минут, 8 секунд (8.03.2012 - 12:34) kenscl12 написал(а):
тогда понятия не имею:)
Спустя 20 минут, 41 секунда (8.03.2012 - 12:55) devis написал(а):
Блин чтож за фигня это уже 3 форум где нет ответа
Спустя 15 минут, 44 секунды (8.03.2012 - 13:11) Visman написал(а):
Примеры покажи, несколько, на преобразование адресов.
Спустя 2 минуты, 48 секунд (8.03.2012 - 13:13) devis написал(а):
В смысле чем я преобразовываю?
Переменная $post содержит текст с картинками картинок может быть 2-5
Максимально который делает преобразование это последний код но он не подсатавляет сам файл и если в тексте 2-3 картинки он первую преобразует а остальные просто удаляет
$post = preg_replace("/(.*src=).*([a-z0-9_-]+\.[a-z0-9])(.*\>)/iU",'\1"http://мой сайт.ру/2012/03/07/\2\3',$post);
$post=preg_replace('#src="http://.+/([^"]+)"#ius', 'src="http://мой сайт.ру/2012/03/07/$1"',$post);
$pattern = '#'
.preg_quote('http://').
'(.*'.
preg_quote('/') . ')[a-zа-я]*'.
preg_quote('.jpg').
'#ius';
$count = preg_match_all($pattern, $post, $matches);
$post = preg_replace('#'.$matches[1][0].'#iu' ,'сайтуууууу.ру/1/2/3/4/5/6/7/a/g/',$post);
$pattern = '#'
.preg_quote('http://').
'.*'.
preg_quote('.jpg').
'#iu';
$post = preg_replace($pattern ,'здесь пишешь втупую текст на который меняешь',$post);
Переменная $post содержит текст с картинками картинок может быть 2-5
Максимально который делает преобразование это последний код но он не подсатавляет сам файл и если в тексте 2-3 картинки он первую преобразует а остальные просто удаляет
Спустя 5 минут, 1 секунда (8.03.2012 - 13:18) Visman написал(а):
Пример адресов, которые есть и что из них должно получиться после преобразования.
Спустя 2 минуты, 36 секунд (8.03.2012 - 13:21) devis написал(а):
Цитата |
есть переменная$post='какой то текст <img src="http://сайт.ру/1/2/3/4/5/6/7/a/g/изображение.jpg" alt="текст" title="текст"> какой то текст'; как мне сделать что бы было $post='какой то текст <img src="http://мой сайт.ру/папка 1/папка 2/папка 3/изображение.jpg" alt="текст" title="текст"> какой то текст'; попробывал такое $post = preg_replace("/(.*src=).*([a-z0-9_-]+\.[a-z0-9])(.*\>)/iU",'\1"http://мой сайт.ру/2012/03/07/\2\3',$post); меняет но вот так $post='какой то текст <img src="http://мой сайт.ру/папка 1/папка 2/папка 3/сайт.ру/1/2/3/4/5/6/7/ |
Спустя 6 минут, 1 секунда (8.03.2012 - 13:27) Visman написал(а):
devis, этого мало для написания преобразования, т.к. всего один пример. И то взятый от фонаря, а не с конкретного адреса.
Спустя 5 минут, 59 секунд (8.03.2012 - 13:33) devis написал(а):
ок
Вот
_http://im.sku.ru/5/t/2/4/d/d75911178224fce135c2242472a.jpg
из нее надо получить
_http://moisait.ru/papka1/papka2/papka3/d75911178224fce135c2242472a.jpg
По идее мне нужно подчеркнутое вырезать и вставить туда свое и не важно сколько примеров ссылок
Вот
_http://im.sku.ru/5/t/2/4/d/d75911178224fce135c2242472a.jpg
из нее надо получить
_http://moisait.ru/papka1/papka2/papka3/d75911178224fce135c2242472a.jpg
По идее мне нужно подчеркнутое вырезать и вставить туда свое и не важно сколько примеров ссылок
Спустя 26 минут, 13 секунд (8.03.2012 - 13:59) Visman написал(а):
$test = preg_replace("#(http://im\.sku\.ru[^\"]+/)([^\"/]+\.)(jpe?g|gif|png)#isU", "http://moisait.ru/papka1/papka2/papka3/$2$3", $test);
up Модификатор U добавил.
Спустя 1 час, 41 минута, 45 секунд (8.03.2012 - 15:41) devis написал(а):
Фух....
Короче методом проб и ошибок получилось у меня с этой заменой!!!!!!!!!!!
Вобщем вот что получилось спс Visman за мысль
Вот код!!!!
Короче методом проб и ошибок получилось у меня с этой заменой!!!!!!!!!!!
Вобщем вот что получилось спс Visman за мысль
Вот код!!!!
$post = preg_replace("#(http://[^\"]+/)([^\"/]+\.)(jpe?g|gif|png|bmp)#iU", "http://мойсайт.ру/папка1/папка2/папка3/$2$3", $post);Отдельное спасибо kenscl12 за выдержку :)
Спустя 1 день, 18 часов, 52 минуты, 21 секунда (10.03.2012 - 10:33) devis написал(а):
А подскажите плизз как или где почитать про загрузку картинок по URL на свой сервер