|
 88.3 Кб |
|
| Здравствуйте Уважаемое сообщество.
У меня есть таблица, файл который создаёт таблицу я прикрепил.
В ячейке Field 3 содержится html код в нём нужно заменить рисунки.
Я использую скрипт.
<?php
// header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM material_content_into3";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat))
{
// preg_match_all('#src="([^"]+)"#i', $catagory['Field 3'], $matches); // показывает ссылку для изображения
$newField_3 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)/lessons/#i', '$1/images/lessons/', $catagory['Field 3']); // Замена адреса изображения в строке
// <img height="547" src="/lessons/les1677/1.jpg" width="450" /> менняется на
// <img height="547" src="/images/lessons/les1677/1.jpg" width="450" />
$newField_3 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)tools/#i', '$1/images/tools/', $catagory['Field 3']); // Замена адреса изображения в строке
// <IMG height=23 src="tools/Elliptical Marquee.jpg" width=27> менняется на
// <IMG height=23 src="/images/tools/Elliptical Marquee.jpg" width=27>
// echo $newField_3."<br>";
// Запрос для обновления
$query = "UPDATE material_content_into3
SET `Field 3` = '{$newField_3}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Запрос выполнен успешно';
}
}
?>
|
Замена рисунков происходит но только для 1 строчки кода.
Я запускаю скрипт и меняются рисунки по условию в строке
$newField_3 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)tools/#i', '$1/images/tools/', $catagory['Field 3']);
|
почему не меняются рисунки по условию?
$newField_3 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)/lessons/#i', '$1/images/lessons/', $catagory['Field 3']);
|
Ведь в скрипте должна быть замена и там и там. | |
|
|
|
|
|
|
|
для: pautina
(20.01.2012 в 06:14)
| | второй заменой перезаписываете переменную $newField_3, а строку, в которой производите замену, используете одну и ту же.
т.е. строкой поиска для второй замены должна стать сама переменная $newField_3 | |
|
|
|
|
|
|
|
для: Igorek
(20.01.2012 в 08:34)
| | Как описать это кодом? | |
|
|
|
|
|
|
|
для: pautina
(20.01.2012 в 09:23)
| | Я же Вам уже писал, что во втором слк\учае нужно с переменной $newField_3 работать - вот так пробуйте:
<?php
// header("Content-Type: text/html; charset=UTF-8");
$conn = mysql_connect ("localhost", "root", "")
or die ("Соединение не установлено!");
mysql_select_db("bd_photoshop-portal", $conn);
$query = "SELECT * FROM material_content_into3";
$cat = mysql_query($query);
if(!$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
if(mysql_num_rows($cat))
{
while($catagory = mysql_fetch_assoc($cat))
{
// preg_match_all('#src="([^"]+)"#i', $catagory['Field 3'], $matches); // показывает ссылку для изображения
$newField_3 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)/lessons/#i', '$1/images/lessons/', $catagory['Field 3']); // Замена адреса изображения в строке
// <img height="547" src="/lessons/les1677/1.jpg" width="450" /> менняется на
// <img height="547" src="/images/lessons/les1677/1.jpg" width="450" />
$newField_3 = preg_replace('#(<img\s[^>]*?\bsrc\s*=\s*[\'"]?)tools/#i', '$1/images/tools/', $newField_3); // Замена адреса изображения в строке
// <IMG height=23 src="tools/Elliptical Marquee.jpg" width=27> менняется на
// <IMG height=23 src="/images/tools/Elliptical Marquee.jpg" width=27>
// echo $newField_3."<br>";
// Запрос для обновления
$query = "UPDATE material_content_into3
SET `Field 3` = '{$newField_3}'
WHERE ID = {$catagory['ID']}";
if(!mysql_query($query))
{
exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);
}
echo 'Запрос выполнен успешно';
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Lotanaen
(20.01.2012 в 09:42)
| | Да спасибо большое всё работает. | |
|
|
|