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

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

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

 

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

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

тема: Загрузка файла с удалённого хоста
 
 автор: P@Sol   (02.05.2006 в 09:55)   письмо автору
 
 


<?php
$filename
="http://name.ru/station.php?nnst=79310";
$file fopen$filename"r") or die("&#206;&#248;&#232;&#225;&#234;&#224;") ;
$rf fread($file90000);
fclose($file);
echo 
$rf;
?>

вот такой простой грабер, но страница вечит 28 кб. echo $rf мне выводит только треть страницы. почему?

   
 
 автор: cheops   (02.05.2006 в 11:56)   письмо автору
 
   для: P@Sol   (02.05.2006 в 09:55)
 

Вместо конструкции
<?php
$file 
fopen$filename"r") or die("&#206;&#248;&#232;&#225;&#234;&#224;") ; 
$rf fread($file90000); 
fclose($file); 
?>

лучше использовать функцию file_get_contents()
<?php
$rf 
file_get_contents($filename);
?>

   
 
 автор: P@Sol   (02.05.2006 в 15:54)   письмо автору
 
   для: P@Sol   (02.05.2006 в 09:55)
 

а как из конструкции <a href="любой путь">любые цифры</a> достать "любые цифры"?

   
 
 автор: cheops   (02.05.2006 в 16:17)   письмо автору
 
   для: P@Sol   (02.05.2006 в 15:54)
 

Для этого можно воспользоваться регулярным выражением
<?php
  $text 
'<a href="любой путь">любые цифры</a>';
  
$pattern "|<a[^>]+>(.*)</a>|isU";
  
preg_match($pattern,$text,$out);
  echo 
$out[1];
?>

   
 
 автор: P@Sol   (03.05.2006 в 10:21)   письмо автору
 
   для: P@Sol   (02.05.2006 в 09:55)
 

спасибо, cheops!

но я никак не разбирусь далее...

у меня есть таблица, для примера, 3 строки

<table cellpadding="5" cellspacing="0" border="0" width="100%">
<tr><td colspan="3" align="center"><b>Сегодня</b></td>
<tr><td class="ttable"><b>Номер</b></td><td class="ttable" align="center"><b>Имя</b></td><td class="ttable"><b>Сколько<br/>раз</b></tr>
<tr class="menu" href="view.php?np=2067" bgcolor="#e5e5e5" title="">
<td class="ttable"><a href="view.php?np=2067">1</a></td>
<td class="ttable">Вася</td>
<td class="ttable">2 раза<td>

</tr>
<tr class="menu" href="view.php?np=2069"  title="">
<td class="ttable"><a href="view.php?np=2069">2</a></td>
<td class="ttable">Коля</td>
<td class="ttable">1 раз<td>
</tr>
<tr class="menu" href="view.php?np=2070" bgcolor="#e5e5e5" title="">
<td class="ttable"><a href="view.php?np=2070">3</a></td>
<td class="ttable">Петя</td>
<td class="ttable">2 раза<td>
</tr>
</table>
                    </td>

                    <td align="center">
<table cellpadding="5" cellspacing="0" border="0" width="100%">
 <tr><td colspan="3" align="center"><b>Вчера</b></td>
 <tr><td class="ttable"><b>Номер</b></td><td class="ttable" align="center"><b>Имя</b></td><td class="ttable"><b>Сколько<br/>раз</b></tr>

<tr class="menu" href="view.php?np=1997" bgcolor="#e5e5e5" title="">
<td class="ttable"><a href="view.php?np=1997">1</a></td>
<td class="ttable">Вася</td>
<td class="ttable">6 раз<td>
</tr>
<tr class="menu" href="view.php?np=1998"  title="">
<td class="ttable"><a href="view.php?np=1998">2</a></td>
<td class="ttable">Петя</td>
<td class="ttable">4 раза<td>

</tr>
<tr class="menu" href="view.php?np=1999" bgcolor="#e5e5e5" title="">
<td class="ttable"><a href="view.php?np=1999">3</a></td>
<td class="ttable">Коля</td>
<td class="ttable">1 раз<td>
</tr>


мне надо это достать из таблицы и вывести на экран

Сегодня:
1 Вася 3 раза
2 Коля 1 раз
3 Петя 2 раза

Вчера:
1 Вася 6 раз
2 Петя 4 раза
3 Коля 1 раз


причем 1, 2 и 3 не должны быть уже ссылками

я хотел разбить сначало на строки

 $pattern = "|<tr class=\"menu\"[^>]+>(.*)</tr>|isU";
        preg_match($pattern,$printing[1],$stroka);
        echo $stroka[1]; //1 Вася 3 раза

но после этого кода теряются последующии строки

как сделать чтобы $stroka[1] - была первая строка, $stroka[2] - вторая и т.д.?

   
 
 автор: P@Sol   (03.05.2006 в 11:53)   письмо автору
 
   для: P@Sol   (03.05.2006 в 10:21)
 

вот до чего я дошел (долеко не идеал...но пока работает:)

<?php
$filename
="http://site.ru/station.php?nnst=79310";
$rf file_get_contents($filename);
$printing "";
$grab=eregi("<!--Y{VOTE}-->(.*)<td 1width=\"120\""$rf$printing);
$k=10;

        
$pr str_replace('</tr>',"",$printing[1]);
      
//  $pr = str_replace('</tr>',";",$pr);

        
$pattern "<tr class=\"menu\"[^>]+>";
        
$pr ereg_replace($pattern,"<br><br>",$pr);

        
$pr str_replace('</td>',",",$pr);

        
$pr str_replace('<td class="ttable">',"",$pr);

        
$pr str_replace('<td>',";",$pr);

        
$pr str_replace('<table cellpadding="5" cellspacing="0" border="0" width="100%">',"##",$pr);

        
$grab=eregi("<a href=\"view[^>]+>(.*)<hr/>"$pr$pr);

        echo 
strip_tags($pr[1]);



?>

   
Rambler's Top100
вверх

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