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

Форум MySQL

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

 

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

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

тема: Копирование мини рисунков из ячейки таблицы
 
 автор: pautina   (24.01.2012 в 15:36)   письмо автору
20.3 Кб
 
 

Здравствуйте Уважаемое сообщество.
У меня есть таблица table_effects.sql (файл создающий таблицу я прикрепил) в таблице в ячейке Image URL 1 содержатся рисунки, данные в этой ячейке такие

http://www.photoshop-master.ru/lessons/les1689/mini.jpg
http://www.photoshop-master.ru/lessons/les1677/mini.jpg
...
http://www.photoshop-master.ru/lessons/les1424/mini.jpg

Мне нужно скопировать эти рисунки в папки по пути path
Для этого использую скрипт

<?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 category_effects";       
  
$cat mysql_query($query);       
  if(!
$cat) exit("Ошибка выполнения запроса - ".mysql_error()."<br />".$query);       
  if(
mysql_num_rows($cat))       
  {       
    while(
$catagory mysql_fetch_assoc($cat)) ;    
    {  
     
$newImage_URL_1 $catagory['Image URL 1'];          
          
     if (
is_array($newImage_URL_1)) 
         foreach(
$newImage_URL_1 as $link){ 
             
$file dirname($link)."/"// в конце каждой директории должен быть / иначе рисунки не скопируются в нужную папку
             
$path $file;
             
// $path = str_replace("http://www.photoshop-master.ru","images", $file); // чтобы посмотреть пути для рисунков меняем эту строку на              
              
$c basename($link);   
              
copy($link$path.$c);
         }  
                 
    }       
  }       
?>

Папки для копирования у меня подготовлены lessons / les1689, / les1677, / ... /les1424 они лежат на одном уровне с этим скриптом.
Но копирования не происходит не посмотрите в чём может быть ошибка?

  Ответить  
 
 автор: pautina   (25.01.2012 в 06:15)   письмо автору
 
   для: pautina   (24.01.2012 в 15:36)
 

Воможно что то сэтими строками

$newImage_URL_1 = $catagory['Image URL 1'];          
     if (is_array($newImage_URL_1)) 

Ни посмотрите скрипт?

  Ответить  
 
 автор: pautina   (25.01.2012 в 16:42)   письмо автору
20.3 Кб
 
   для: pautina   (25.01.2012 в 06:15)
 

Давайте делать 2-м способом.
У меня есть таблица category_effects.sql (файл таблицы я прикрепил) в поле Field 4 содержится html код, в нём есть 1 мини рисунок.
например для ячейки с ID=1

<LI><P class=index_lessons><IMG title="миниатюра к уроку Создай экспрессивную космическую иллюстрацию в Фотошоп" height=42 alt="миниатюра к уроку Создай экспрессивную космическую иллюстрацию в Фотошоп" src="lessons/les1677/mini.jpg" width=42><A href="lessons.php?rub=1&amp;id=1677">Создай экспрессивную космическую иллюстрацию в Фотошоп</A><SPAN>Автор/Переводчик: <A class=small href="/lessons.php?aut=152">Садыгалиев Марат</A></SPAN> <BR><SPAN class=Hard>Сложность: <A class=small href="/lessons.php?dif=3">Усложненная</A></SPAN></P>
<P>В этом уроке вы узнаете, создать интересную иллюстрацию, используя различные техники, световые эффекты, цветокоррекцию.</P>
<P class=Created>Создан: 1.11.2011&nbsp;&nbsp;|&nbsp;&nbsp;Просмотров: 53524 &nbsp;&nbsp;|&nbsp;&nbsp; Выполнено работ: 38</P>

Мне нужно скопировать эти мини рисунки (в каждой ячейке рисунок 1 может в скрипте не как массив описывать?).
Для этого использую скрипт

<?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 category_effects";        
  
$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 4'], $matches); // показывает ссылку для изображения      
      
$matches[1] = str_replace('/lessons''http://www.photoshop-master.ru/lessons'$matches[1]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/  
           
           
      
if (is_array($matches[1])) 
         foreach(
$matches[1] as $link){ 
             
$file dirname($link)."/"// в конце каждой директории должен быть / иначе рисунки не скопируются в нужную папку
             
$path str_replace("http://www.photoshop-master.ru","images"$file);             
             
$c basename($link);   
             
copy($link$path.$c);
         }  
                
    }        
  }        
?>

Но копирования не происходит, папки для копирования подготовлены, файл скрипта и images/lessons/lesxxxx/ лежат на одном уровне.
Ни могли бы Вы посмотреть скрипт, почему не копируются рисунки?

  Ответить  
 
 автор: Sfinks   (25.01.2012 в 17:19)   письмо автору
 
   для: pautina   (25.01.2012 в 16:42)
 

Для начала тут: preg_match_all('#src="([^"]+)"#i'......
а потом: $matches[1] = str_replace('/lessons',.......
я в ваших исходных данных нигде не вижу в атрибуте SRC строки '/lessons'

  Ответить  
 
 автор: pautina   (26.01.2012 в 06:04)   письмо автору
 
   для: Sfinks   (25.01.2012 в 17:19)
 

Изменения сделал сейчас скрипт такой

<?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 category_effects";        
  
$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 4'], $matches); // показывает ссылку для изображения      
      
$matches[1] = str_replace('lessons''http://www.photoshop-master.ru/lessons'$matches[1]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/  
           
           
      
if (is_array($matches[1])) 
         foreach(
$matches[1] as $link){ 
             
$file dirname($link)."/"// в конце каждой директории должен быть / иначе рисунки не скопируются в нужную папку
             
$path str_replace("http://www.photoshop-master.ru","images"$file);             
             
$c basename($link);   
             
copy($link$path.$c);
         }  
                
    }        
  }        
?>

Но мини рисунки не копируются, в чём может быть ошибка?
Кстати если делать копирование из строки по скрипту

<?php 
 $str 
'<LI><P class=index_lessons><IMG title="миниатюра к уроку Создай экспрессивную космическую иллюстрацию в Фотошоп" height=42 alt="миниатюра к уроку Создай экспрессивную космическую иллюстрацию в Фотошоп" src="lessons/les1677/mini.jpg" width=42><A href="lessons.php?rub=1&amp;id=1677">Создай экспрессивную космическую иллюстрацию в Фотошоп</A><SPAN>Автор/Переводчик: <A class=small href="/lessons.php?aut=152">Садыгалиев Марат</A></SPAN> <BR><SPAN class=Hard>Сложность: <A class=small href="/lessons.php?dif=3">Усложненная</A></SPAN></P>
<P>В этом уроке вы узнаете, создать интересную иллюстрацию, используя различные техники, световые эффекты, цветокоррекцию.</P>
<P class=Created>Создан: 1.11.2011&nbsp;&nbsp;|&nbsp;&nbsp;Просмотров: 53524 &nbsp;&nbsp;|&nbsp;&nbsp; Выполнено работ: 38</P>
'

     
preg_match_all('#src="([^"]+)"#i'$str$matches); // показывает ссылку для изображения      
     
$matches[1] = str_replace('lessons''http://www.photoshop-master.ru/lessons'$matches[1]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/  
     
        
     
if (is_array($matches[1])) 
         foreach(
$matches[1] as $link){ 
             
$file dirname($link)."/"// в конце каждой директории должен быть / иначе рисунки не скопируются в нужную папку
             
$path str_replace("http://www.photoshop-master.ru","images"$file);
             
// $path = str_replace("http://www.photoshop-master.ru","images", $file); // чтобы посмотреть пути для рисунков меняем эту строку на 
             // $path[] = str_replace("http://www.photoshop-master.ru","images", $file);
              // $link = str_replace(' ','%20', $link); // обработка исключений для рисунков в имени которых есть пробел
              
$c basename($link);   
              
copy($link$path.$c);
         } 
         
     echo
"<pre>";print_r($path);print_r($matches[1]);exit("</pre>");

?>

то копирование из строки идёт.
Почему не копируются рисунки из таблицы?

  Ответить  
 
 автор: Sfinks   (26.01.2012 в 16:06)   письмо автору
 
   для: pautina   (26.01.2012 в 06:04)
 

БЛИН! А че у вас ";" делает в строке
<?
while($catagory mysql_fetch_assoc($cat)) ;
???

  Ответить  
 
 автор: pautina   (26.01.2012 в 17:58)   письмо автору
649.7 Кб
 
   для: Sfinks   (26.01.2012 в 16:06)
 

; из скрипта убрал, но копирования нет.

<?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 category_effects";         
  
$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 4'], $matches); // показывает ссылку для изображения      
     
$matches[1] = str_replace('lessons''http://www.photoshop-master.ru/lessons'$matches[1]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/       
        
     
if (is_array($matches[1])) 
         foreach(
$matches[1] as $link){ 
             
$file dirname($link)."/"// в конце каждой директории должен быть / иначе рисунки не скопируются в нужную папку
             
$path str_replace("http://www.photoshop-master.ru","images"$file);
             
// $path = str_replace("http://www.photoshop-master.ru","images", $file); // чтобы посмотреть пути для рисунков меняем эту строку на 
             // $path[] = str_replace("http://www.photoshop-master.ru","images", $file);
              // $link = str_replace(' ','%20', $link); // обработка исключений для рисунков в имени которых есть пробел
              
$c basename($link);   
              
copy($link$path.$c);
         } 
         
         echo
"<pre>";print_r($path);print_r($matches[1]);exit("</pre>");         
    }         
  }         
?>

В прикреплённом архиве скрипт, папки для рисунков, и таблица БД.
Ни посмотрите скрипт?

  Ответить  
 
 автор: pautina   (27.01.2012 в 13:00)   письмо автору
 
   для: pautina   (26.01.2012 в 17:58)
 

Прошу извинить все работает, спасибо за поддержку?

  Ответить  
 
 автор: Sfinks   (27.01.2012 в 17:46)   письмо автору
 
   для: pautina   (27.01.2012 в 13:00)
 

Мм... Это вопрос? )

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

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