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

Форум Регулярные Выражения

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

 

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

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

тема: Импорт инфы с другого сайта. Помогите составить рег. выр.
 
 автор: JIEXA   (04.09.2005 в 00:51)   письмо автору
 
 

Вообщем такая задачка...
Нужная информация лежит между кодом

<b>Номер задания</b></td></tr><tr align="center">

и

<tr align="right">
        <td class="txt" width="500" colspan="1"><b>СТРАНИЦА:</b>

Дальше из получного куска текста вытащить ссылки вида

<a href="http://www.site.ru/content/Al7/0/1/$a тут могут быть анг. буквы разного регистра.html" target="_blank">$b тут может быть любое число</a>

и инфу каждой ссылки загнать в массив
$mas[инф. из переменной $a] = инф. из переменной $b;

думую понятно объяснил, если кто может - подскажите

   
 
 автор: cheops   (04.09.2005 в 12:58)   письмо автору
 
   для: JIEXA   (04.09.2005 в 00:51)
 

А нельзя ли кусочек HTML-кода увидеть - без него очень сложно сразу создать рабочий код.

   
 
 автор: JIEXA   (04.09.2005 в 17:25)   письмо автору
 
   для: cheops   (04.09.2005 в 12:58)
 

-

   
 
 автор: napTu3aH   (04.09.2005 в 17:27)   письмо автору
 
   для: JIEXA   (04.09.2005 в 17:25)
 

ничего себе кусочек ;)

   
 
 автор: cheops   (04.09.2005 в 19:43)   письмо автору
43.1 Кб
 
   для: JIEXA   (04.09.2005 в 17:25)
 

Такие большие файлы лучше прикреплять в виде отдельного файла - иначе будет мало желающих выгружать такую длинную и объёмную тему каждый раз чтобы ответить на пост.

   
 
 автор: JIEXA   (04.09.2005 в 22:42)   письмо автору
 
   для: cheops   (04.09.2005 в 19:43)
 

Немогли бы подсказать по моему вопросу, если не трудно конечно же.

   
 
 автор: JIEXA   (04.09.2005 в 17:53)   письмо автору
 
   для: JIEXA   (04.09.2005 в 00:51)
 

У меня пока, вот такой кодик получился:

<?php 
$text 
file_get_contents("http://www.site.ru/gdz/Al7/0/"); 
// Ищем начало вхождения таблицы 
$pos_begin strpos($text,'<b>Номер задания</b></td></tr><tr align="center">'); 
$text substr($text,$pos_begin); 
// Ищем конец таблицы 
$pos_end strpos($text,'<td class="txt" width="500" colspan="1"><b>СТРАНИЦА:</b>'); 
$text2 substr($text0$pos_end 14); 
preg_match_all("|href=([^>]+)|i",$text2$outPREG_PATTERN_ORDER); 
foreach(
$out[1] as $href
{
$href str_replace("\" target=\"_blank\""""$href);
$href str_replace("\""""$href);
$href str_replace(".html"".jpg"$href);
echo 
$href."<br>"
}

?>


После обработки я получаю такой текст
http://www.site.ru/content/Al7/0/1/mlugUYA.jpg
http://www.site.ru/content/Al7/0/1/9NyWkhq.jpg
http://www.site.ru/content/Al7/0/1/4Uypg2l.jpg
http://www.site.ru/content/Al7/0/1/9g6cJbd.jpg
http://www.site.ru/content/Al7/0/1/82cI5rb.jpg
http://www.site.ru/content/Al7/0/1/o3zh7lO.jpg
http://www.site.ru/content/Al7/0/1/h5HqPYT.jpg
http://www.site.ru/content/Al7/0/1/gSNA42P.jpg
http://www.site.ru/content/Al7/0/1/GCPYTFY.jpg
http://www.site.ru/content/Al7/0/1/rHNctYa.jpg
http://www.site.ru/content/Al7/0/1/yVYK3Y6.jpg
http://www.site.ru/content/Al7/0/1/WfRyDzz.jpg
http://www.site.ru/content/Al7/0/1/pdoDZQX.jpg
http://www.site.ru/content/Al7/0/1/ie3UwXb.jpg
http://www.site.ru/content/Al7/0/1/e53lcw3.jpg
http://www.site.ru/content/Al7/0/1/au4WShy.jpg
http://www.site.ru/content/Al7/0/1/ZlSGivP.jpg
http://www.site.ru/content/Al7/0/1/l4zmNU2.jpg
.....
и т.д.


Теперь мне нужно сделать, так чтобы по всем этим ссылкам поочереди скачивались картинки, затем копировались в папку /img/, и переименовывались в число, которое было в ссылке.

А точнее, ссылки там вида
<a href="http://www.site.ru/content/Al7/0/1/mlugUYA.html" target="_blank">1</a>
<a href="http://www.site.ru/content/Al7/0/1/9NyWkhq.html" target="_blank">2</a>
<a href="http://www.site.ru/content/Al7/0/1/4Uypg2l.html" target="_blank">3</a>


Так вот нужно чтобы картинка переименовывалось в свое число, я их выделил жирным.

   
 
 автор: cheops   (05.09.2005 в 02:14)   письмо автору
 
   для: JIEXA   (04.09.2005 в 17:53)
 

Если номера в ссылках уникальны, то можно преобразовать чуть-чуть скрипт
<?php 
  $text 
file_get_contents("http://www.site.ru/gdz/Al7/0/"); 
  
// Ищем начало вхождения таблицы 
  
$pos_begin strpos($text,'<b>Номер задания</b></td></tr><tr align="center">'); 
  
$text substr($text,$pos_begin); 
  
// Ищем конец таблицы 
  
$pos_end strpos($text,'<td class="txt" width="500" colspan="1"><b>СТРАНИЦА:</b>'); 
  
$text2 substr($text0$pos_end 14); 
  
preg_match_all("|href=([^>]+)>([^<]+)<|i",$text2$outPREG_PATTERN_ORDER); 
  for(
$i 0$i count($out[1]); $i++) 
  { 
    
$href str_replace("\" target=\"_blank\""""$out[1][$i]); 
    
$href str_replace("\""""$href); 
    
$href str_replace(".html"".jpg"$href); 
    
$link[$out[2][$i]] = $href
  } 
?>

Таким образом, мы получаем массив $link, в котором в качестве ключа выступает имя ссылки, а в качестве значения адрес, который следует загрузить.
Далее можно загрузить и сохранить изображения на хости следующим образом
<?php
  
foreach($link as $filename => $url)
  {
     
$content file_get_contents($url);
     
$fd fopen("img/".$filename.".gif","w");
     
fwrite($fd,$content);
     
fclose($fd);  
  }
?>

   
Rambler's Top100
вверх

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