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

Форум MySQL

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

 

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

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

тема: Замена адресов изображений в ячейке таблицы
 
 автор: pautina   (20.01.2012 в 06:14)   письмо автору
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']);

Ведь в скрипте должна быть замена и там и там.

  Ответить  
 
 автор: Igorek   (20.01.2012 в 08:34)   письмо автору
 
   для: pautina   (20.01.2012 в 06:14)
 

второй заменой перезаписываете переменную $newField_3, а строку, в которой производите замену, используете одну и ту же.
т.е. строкой поиска для второй замены должна стать сама переменная $newField_3

  Ответить  
 
 автор: pautina   (20.01.2012 в 09:23)   письмо автору
 
   для: Igorek   (20.01.2012 в 08:34)
 

Как описать это кодом?

  Ответить  
 
 автор: Lotanaen   (20.01.2012 в 09:42)   письмо автору
 
   для: 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 
'Запрос выполнен успешно';           
    }       
  }       
?> 

  Ответить  
 
 автор: pautina   (20.01.2012 в 15:22)   письмо автору
 
   для: Lotanaen   (20.01.2012 в 09:42)
 

Да спасибо большое всё работает.

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

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