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

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

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

 

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

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

тема: Вырезать из другого сайта блок текста.
 
 автор: include   (23.07.2008 в 12:19)   письмо автору
 
 

Здравствуйте!

Как вырезать из другого сайта блок текста, закалюченного в div:


<div class="0">
1 - текст<b>1</b>
<div class="e">2 - текст<b>2</b></div>
</div><!-- End 0 --> <------вырезать 0

   
 
 автор: include   (23.07.2008 в 13:53)   письмо автору
 
   для: include   (23.07.2008 в 12:19)
 

    $url = "www.site.ru/111/";
    $content = file_get_contents($url); 
    $content = str_replace("<div class=\"0\">","|",$content); 
    $content = str_replace("<!-- End 0 -->","|",$content); 
    $pattern = "#\|([^\|]+)\|#iU";  
    preg_match_all ($pattern,$content,$out,PREG_SET_ORDER);  
    echo "<pre>";  
    print_r($out[1]); 
    echo "</pre>";


Вот этот код почти работает, но выводит левые данные(в массиве то что мне нужно находится под 1м номером)

   
 
 автор: sms-send   (23.07.2008 в 14:52)   письмо автору
 
   для: include   (23.07.2008 в 13:53)
 

<?php

$url 
"www.site.ru/111/"
$content file_get_contents($url);
preg_match_all('~<div class="0">.*?<!-- End 0 -->~is'$content$outPREG_PATTERN_ORDER);
echo 
"<pre>";   
print_r($out[1]);  
echo 
"</pre>";

   
 
 автор: include   (23.07.2008 в 16:03)   письмо автору
 
   для: sms-send   (23.07.2008 в 14:52)
 

Спасибо!

   
 
 автор: Roo$   (10.08.2008 в 01:05)   письмо автору
 
   для: sms-send   (23.07.2008 в 14:52)
 

шоб не создавать отдельную тему.. мож здесь задам ворпрос..)
а если между тегама <div>, из текущего примера.. расположены ряд тегов котрых мне не нужно захватывать.. Можно ли его как то вырезать??
Например:
<div class="0"> 
1 - текст<b>1</b> 
<div class="e">2 - текст<b>2</b></div><table><tr><td></td></tr></table> 
</div><!-- End 0 --> <------вырезать 0

мне нужно:
<div class="0"> 
1 - текст<b>1</b> 
<div class="e">2 - текст<b>2</b></div> 
</div><!-- End 0 --> <------вырезать 0

   
 
 автор: xx77   (10.08.2008 в 02:18)   письмо автору
 
   для: Roo$   (10.08.2008 в 01:05)
 

<pre><?php
$txt 
'<div class="0">  
1 - текст<b>1</b>  
<div class="e">2 - текст<b>2</b></div><table><tr><td></td></tr></table>  
</div><!-- End 0 --> <------вырезать 0'
;

preg_match('~<div class="0">.*?<!-- End 0 -->~is'$txt $txt ); 
print 
htmlspecialcharspreg_replace('~<table.*?</table>~is','' $txt[0] )) ;   
?></pre>

   
 
 автор: Roo$   (10.08.2008 в 15:32)   письмо автору
 
   для: xx77   (10.08.2008 в 02:18)
 

спс. Это то что нужно )

   
Rambler's Top100
вверх

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