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

Форум MySQL

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

 

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

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

тема: Копирование всех адресов рисунков из строки
 
 автор: pautina   (06.01.2012 в 09:31)   письмо автору
 
 

Здравствуйте Уважаемое сообщество, мне нужно скопировать все адреса рисунков из строки
для этого использую код
После все рисунки нужно вывести в этой строке тогда строка должна иметь вид
http://www.photoshop-master.ru/lessons/les1677/1.jpg
http://www.photoshop-master.ru/lessons/les1677/2.jpg
http://www.photoshop-master.ru/lessons/les1677/3.jpg
...
http://www.photoshop-master.ru/lessons/les1677/20.jpg

после эти рисунки нужно копировать в папку images/lessons/les1677/ путь копирования завязан с содержимым строки ячейки (src="/lessons/les1677/18.jpg")
для копирования из файла можно использовать этот код

<?php   
$data 
file_get_contents("img.txt"); 
$path "images/les1677/";
$a explode("\r\n",$data);  
foreach(
$a as $b){  
 
// это только вывод линков, но можно в цикле скопировать в нужную директорию через copy()  
 // echo $b."<br />"; 
 
$c basename($b); 
 
copy($b$path.$c); 
}
?>

Ни подскажете как мне всё вместе собрать?

[поправлено модератором: объемный PHP-код пожалуйста прикрепляйте в виде файла]

  Ответить  
 
 автор: cheops   (06.01.2012 в 12:56)   письмо автору
 
   для: pautina   (06.01.2012 в 09:31)
 

Тут вероятно, что-то удалено, если не сложно прикрепите файл с недостающим?

  Ответить  
 
 автор: pautina   (06.01.2012 в 14:07)   письмо автору
 
   для: cheops   (06.01.2012 в 12:56)
 

У меня есть определенная строка str в ней содержится html код.
По содержимому этого кода мне нужно скопировать рисунки в подготовленную для этого папку.

<?php  
 $str 
'<p><strong><a href="/lessons.php">Уроки Photoshop</a></strong> &#187; <strong><a href="/lessons.php?rub=1">Рубрика: Эффекты</a></strong></p><br />
<h1 style="text-align:center">Создай экспрессивную космическую иллюстрацию в Фотошоп</h1><p>    
<p align="center">
    <img height="272" src="/lessons/les1677/18.jpg" width="450" /></p>
<p align="center">
    <img height="272" src="/lessons/les1677/19.jpg" width="450" /></p>
<p align="center">
    <img height="272" src="/lessons/les1677/20.jpg" width="450" /></p>
<p>'
;       
     
preg_match_all('#src="([^"]+)"#i'$str$matches); // показывает ссылку для изображения
     
$matches[0] = str_replace('src="/lessons''src="http://www.photoshop-master.ru/lessons'$matches[0]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/ 
     
$matches[0] = str_replace('src="tools''src="http://www.photoshop-master.ru/tools'$matches[0]); // к адресу ссылки прибавляем http://www.photoshop-master.ru/ 
     
     //  здесь пишем регулярное выражение которое из $matches[0] выведет всё между кавычками    
      
 
echo '<pre>';  
 
print_r($matches[0]); 
?>

Здесь как вариант можно использовать регулярное выражение которое выводит всё между кавычками
preg_match_all("/\"(.*?)\"/i", $str, $matches); // регулярное выражение позволяет вытащить всё между кавычками     

После при выводе print_r($matches[0]); мы получим рабочии ссылки зайдя на которые видим рисунок.
Как только все эти ссылки рисунков у нас в строке остались нужно копировать их в папку images/lessons/les1677/ - тут путь к папке нужно прописать переменной $path. (потом строк будет несколько и для каждой строки свой путь)
За основу копирования можно взять этот участок кода

<?php   
$data 
file_get_contents("img.txt"); 
$path "images/les1677/";
$a explode("\r\n",$data);  
foreach(
$a as $b){  
 
// это только вывод линков, но можно в цикле скопировать в нужную директорию через copy()  
 // echo $b."<br />"; 
 
$c basename($b); 
 
copy($b$path.$c); 
}
?>

Тут правда копирование идёт из файла.
Не подскажете как всё вместе собрать?

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

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