Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Заменить все пути к картинкам на новые.
 
 автор: responsor   (20.07.2009 в 14:31)   письмо автору
 
 

есть например такой код:


<html>
 текст текст текст текст текст текст текст текст текст текст текст текст
<a href="http://site.ru/?id=462"><img width="150" src="http://site.ru/files/news/news_462/img_1.jpg" alt="" /></a> текст текст текст текст текст текст текст
</html>


на пхп необходимо заменить все src="http://site.ru/files/news/news_462/img_1.jpg" на src="cid:img_1" , чтобы тег картинки был <img src='cid:img_1'>

в двух словах просто нужна регулярка которая в исходном тексте меняла бы все значения пути в теге <img на новые.

  Ответить  
 
 автор: sim5   (20.07.2009 в 15:23)   письмо автору
 
   для: responsor   (20.07.2009 в 14:31)
 

Для почтового отправления? Этот код ваш исходник?

  Ответить  
 
 автор: RESPONSOR   (20.07.2009 в 15:42)   письмо автору
 
   для: sim5   (20.07.2009 в 15:23)
 

ага да, для почтового отправления, используется модуль phpmailer вставляет картинку в тело письма он примерно так $mail->AddEmbeddedImage(DOCUMENT_ROOT.$l, 'image'.$t.'.jpg', 'my-attach'.$t.'', 'base64', $imagetype); делает это он в цикле но там эти изображения указываются отдельно, тоесть можно вставить 2-3 изображения в конец письма, это не очень удобно, я хочу сделать цикл который заменял бы все <img src="http://" > в тексте на <img src"cid:" > и приаттачивал выцепленные картинки через $mail->AddEmbeddedImage(DOCUMENT_ROOT.$l, 'image'.$t.'.jpg', 'my-attach'.$t.'', 'base64', $imagetype); к телу письма, тогда все картинки будут приходить получателю вместе с письмом.

  Ответить  
 
 автор: sim5   (20.07.2009 в 16:09)   письмо автору
 
   для: RESPONSOR   (20.07.2009 в 15:42)
 

В CID указывается не просто имя файла, но и его расширение. Ну а зачем тогда так изголятся? Не проще ли готовить тело почтового сообщения как шаблон, в который передавать необходимое имя изображения? К тому же, для включения его в тело письма, вам тоже нужно будет передавать путь и имя его phpmailer.

  Ответить  
 
 автор: RESPONSOR   (20.07.2009 в 16:14)   письмо автору
 
   для: sim5   (20.07.2009 в 16:09)
 

тело письма приходит всегда с тегами <img src="http:// тоесть как бы просто картинки берутся с сервера где сайт лежит, а со всех постовиках пока не нажмешь на кнопку показать картинки на их месте красный крестик стоит, вот и необходимо в цикле выбрать все пути к изображениям, заменить их на cid и приаттачить эти изображения к телу письма.

  Ответить  
 
 автор: Trianon   (20.07.2009 в 16:19)   письмо автору
 
   для: RESPONSOR   (20.07.2009 в 16:14)
 

Может проще mailer откорректировать?
Зачем костыль делать, когда можно инструмент наточить?

  Ответить  
 
 автор: sim5   (20.07.2009 в 16:27)   письмо автору
 
   для: RESPONSOR   (20.07.2009 в 16:14)
 

Если вы включате картинку в тело письма, а не прикрепляете изображение, то пути на сервере вообще не нужны - картинка будет содержаться в теле письма! Все, что будет передеано в этом случае это один документ, а cid - это ссылка на объект изображения в нем. Забудьте о http:// и работайте с относительными путями, вам оно не нужно.

  Ответить  
 
 автор: RESPONSOR   (20.07.2009 в 16:46)   письмо автору
 
   для: sim5   (20.07.2009 в 16:27)
 

да, мне это и нужно, то-есть как вы сказали все картинки прикрепить к телу письма чтобы они отображались сразу при получении письма.

с помощью функции phpmailer`а $mail->AddEmbeddedImage(путь к картинке, имя_изображения, ай-ди, кодировка, тип_изображения); я прикрепляю картинки к телу письма, то-есть приходит письмо вида

заголовки..

текст в котором есть <img картинки с сорсом http://site.ru/img.jpg >
тут пара картинок которые прицепляются $mail->AddEmbeddedImage и отображаются сразу

закодированные картинки MTIzMDAy=+UnZh и тд...


а мне надо чтобы получилось

заголовки..

текст в котором есть <img картинки которые прицепляются $mail->AddEmbeddedImage
тут пара картинок которые прицепляются $mail->AddEmbeddedImage и отображаются сразу

закодированные картинки MTIzMDAy=+UnZh и тд...


То-есть в исходном теле письма, где из админ формы приходит текст с тегами, надо теги <img обработать чтобы они "правильно" отображали картинки. Вот мне надо или preg_match_all или еще чтото чтобы пути к картинками поменять в циклеи в этом же цикле приаттачить их к письму.

  Ответить  
 
 автор: sim5   (20.07.2009 в 17:03)   письмо автору
 
   для: RESPONSOR   (20.07.2009 в 16:46)
 

Не надо рассказывать о закодированных картинках и т.п., я знаю, что с ними будет.
Если вам охота парсить документ рег. выражениями, то в соответствующий раздел, там уже есть готовые примеры.
Что за адимин форма, и почему в ней теги <img> со всеми "наворотами"?

  Ответить  
 
 автор: RESPONSOR   (20.07.2009 в 17:14)   письмо автору
 
   для: sim5   (20.07.2009 в 17:03)
 

"админка" в простонародье, оттуда ничего не поменяешь то-есть на вход приходит текст с в обычном нтмл формате в тегами картинок в которых срц как везде на сайтах, мне необходимо все эти картинки зафигачить в тело письма чтобы они отображались сразу при получении и не надо было жать на кнопку "показать изображения" , и все о чем я прошу это показать мне пример цикла где все эти картинки заменяются на аттачи к письму, вот и все ))

  Ответить  
 
 автор: sim5   (20.07.2009 в 17:31)   письмо автору
 
   для: RESPONSOR   (20.07.2009 в 17:14)
 

Я же вам сказал - в соседнем разделе готовые примеры.
>на вход приходит текст с в обычном нтмл формате в тегами картинок в которых
На вход должно приходить сформированное вами сообщение, а коли вы его формируете, а не Вася, то стоит подумать как это делать правильно, без лишней головной боли.

  Ответить  
 
 автор: RESPONSOR   (20.07.2009 в 17:37)   письмо автору
 
   для: sim5   (20.07.2009 в 17:31)
 

ясно, спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования