|
|
|
| Здравствуйте Уважаемое сообщество.
У меня есть строка которая содержит html код
img height=p align=Осветление Изображение было удалено автором, я нашёл для вас ссылку на изображение девушки авиатора или вы можете использовать свои изображения, или сами поискать на стоковых сайтах.
[поправлено модератором: объемный код пожалуйста прикрепляйте в виде файла] | |
|
|
|
|
|
|
|
для: pautina
(06.01.2012 в 08:57)
| | Если честно пока не очень понятно. Здесь нужно задействовать как-то MySQL? | |
|
|
|
|
|
|
|
для: cheops
(06.01.2012 в 12:55)
| | Смотрите у меня есть строка str в ней содержится html код
в строке содержащий html код есть теги рисунков <img height="272" src="/lessons/les1677/20.jpg" width="450" /> мне хотелось бы во всех этих тегах заменить src на src="images/lessons/les1677/20.jpg"
для этого использую код
<?php
$str = '<p><strong><a href="/lessons.php">Уроки Photoshop</a></strong> » <strong><a href="/lessons.php?rub=1">Рубрика: Эффекты</a></strong></p><br />
<h1 style="text-align:center">Создай экспрессивную космическую иллюстрацию в Фотошоп</h1><p>
<p align="center">
<img height="547" src="/lessons/les1677/1.jpg" width="450" /></p>
<p align="center">
<img height="272" src="/lessons/les1677/5.jpg" width="450" /></p>
<p align="center">
<img height="272" src="/lessons/les1677/6.jpg" width="450" /></p>
<p>
<strong>ШАГ 4. </strong>Переходим на слой-маску и на слой-маске прокрашиваем чёрной кистью непрозрачностью 20% края изображения, чтобы совместить с нашим чёрным задним фоном.</p>
<p align="center"> ...';
preg_match_all('#src="([^"]+)"#i', $str, $matches); // показывает ссылку для изображения
$matches[0] = str_replace('src="/lessons', 'src="/images/lessons', $matches[0]); // к адресу ссылки прибавляем images
$matches[0] = str_replace('src="tools', 'src="/images/tools', $matches[0]); // к адресу ссылки прибавляем images
$adr_img = $matches[0];
$str2 = str_replace($adr_img, 'src="/images/lessons', $str);
echo '<pre>';
print_r($str2);
?>
|
Но замены не происходит, не взгляните код? | |
|
|
|
|
автор: ..... (06.01.2012 в 20:39) |
|
|
для: pautina
(06.01.2012 в 13:53)
| | типа такого, .... может быть
<?php
header('content-type: text/plain');
$str = '<p><strong><a href="/lessons.php">Уроки Photoshop</a></strong> » <strong><a href="/lessons.php?rub=1">Рубрика: Эффекты</a></strong></p><br />
<h1 style="text-align:center">Создай экспрессивную космическую иллюстрацию в Фотошоп</h1><p>
<p align="center">
<img height="547" src="/lessons/les1677/1.jpg" width="450" /></p>
...';
echo $str= preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)/lessons/#i', '$1/images/lessons/', $str);
|
| |
|
|
|
|
|
|
|
для: .....
(06.01.2012 в 20:39)
| | Спасибо всё меняется, скажите а как можно изменить кодировку в коде на Кирилица windows
header('content-type: text/plain');
|
1)
Что то в header нужно добавить.
А то у меня сейчас так получается скрипт выполняется делает замену код-ка скрипта utf-8, как я просматриваю вывод строки символы строки выводятся иероглифами (для русского текста), чтоб символы выводились на русском нужно изменить кодировку скрипта на Кирилица Windows, после этого строка выводится как надо, но вот сам код скрипта после закрытия файла, выводится иероглифами для русского языка, т.е. если потом открываем этот скрипт в dreamweaver русские символы выводятся иеролифами.
2)
Есть ещё вот какой вопрос
В коде строки иногда могут попадатся маленькие рисунки адрес у которых src="tools/Elliptical Marquee.jpg" width="27"
Какое регулярное выражение здесь составить чтоб заменить эту строку на src="images/tools/Elliptical Marquee.jpg" width="27" | |
|
|
|
|
автор: ..... (07.01.2012 в 12:33) |
|
|
для: pautina
(07.01.2012 в 09:30)
| | 1.
. header('Content-type: text/plain; charset=utf-8');
2
. по разному бывает , бывает что и важные данные теряются при ошибках в выражении :)
. главное не перезаписывать данные, пока не найдено и полностью не проверено
. окончательное решение :)
2.a
. использовать preg_replace_callback() cо слегка изменённым выражением
. и функцией возвращающей разные варианты взависимости от найденных совпадений
2.b
. применить в prerg_replace() модификатор /e и в строке замены использовать елемент массива по индексу
2.c
. передать массивы в качестве первых двух параметров prerg_replace()
2.d
. вызывать prerg_replace() требуемое колличество раз
2....
// вроде 2a быстрее , но больше кода
// 2.b самый краткий вариант , иногда самый медленный
// 2.c и 2.d почти одно и то-же | |
|
|
|
|
|
|
|
для: .....
(07.01.2012 в 12:33)
| | По записи регулярного выражения
$str= preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)/lessons/#i', '$1/images/lessons/', $str); // Замена адреса изображения в строке
// <img height="547" src="/lessons/les1677/1.jpg" width="450" /> меняется на
// <img height="547" src="/images/lessons/les1677/1.jpg" width="450" />
|
Это регулярное выражение делает замену <img height="547" src="/lessons/les1677/1.jpg" width="450" /> на <img height="547" src="/images/lessons/les1677/1.jpg" width="450" />
Мне нужно написать регулярное выражение которое бы тег
<img height="23" src="tools/Elliptical Marquee.jpg" width="27" /> заменяло на
<img height="23" src="images/tools/Elliptical Marquee.jpg" width="27" /> | |
|
|
|
|
|
|
|
для: pautina
(07.01.2012 в 15:42)
| | Извиняюсь.
Этот участок кода нужно использовать.
$str= preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)/lessons/#i', '$1/images/lessons/', $str); // Замена адреса изображения в строке
// <img height="547" src="/lessons/les1677/1.jpg" width="450" /> менняется на
// <img height="547" src="/images/lessons/les1677/1.jpg" width="450" />
$str= preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)tools/#i', '$1/images/tools/', $str);
|
| |
|
|
|