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

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

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

 

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

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

тема: Всё о томже, как заменить
 
 автор: BArt Simpson   (26.01.2006 в 13:33)   письмо автору
 
 

есть страница в интернете..... Периодически обновляется..... Там есть таблица которую нужно переколбасить под свой дизайн....

есть вот это

<TR>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><A HREF="pdf/sword_test.pdf"
TARGET="head"><IMG SRC="image/dot-red.gif" ALT="View Test" WIDTH="20"
HEIGHT="20" BORDER="0"></A> </TD>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><FONT FACE="Arial">Sword 3.0 Speaker
Cable</FONT></TD>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><FONT FACE="Arial">Test</FONT></TD>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><FONT FACE="Arial">Hi-Fi +</FONT></TD>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><FONT FACE="Arial">2005</FONT></TD>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><FONT FACE="Arial">UK</FONT></TD>
</TR>


нужно, например


<TR>
<TD ALIGN="LEFT" VALIGN="MIDDLE"><A HREF="http://site.ru/pdf/sword_test.pdf"
TARGET="head">Sword 3.0 Speaker Cable</A></TD>
<TD ALIGN="LEFT" VALIGN="MIDDLE">Test</TD>
<TD ALIGN="LEFT" VALIGN="MIDDLE">Hi-Fi +</TD>
<TD ALIGN="LEFT" VALIGN="MIDDLE">2005</TD>
<TD ALIGN="LEFT" VALIGN="MIDDLE">UK</TD>
</TR>


ПомоЖите кто чем может :)

   
 
 автор: cheops   (26.01.2006 в 14:32)   письмо автору
 
   для: BArt Simpson   (26.01.2006 в 13:33)
 

От тэгов <font> можно избавиться при помощи скрипта
<?php
  $text 
'<TR> 
<TD ALIGN="LEFT" VALIGN="MIDDLE"><A HREF="pdf/sword_test.pdf" 
TARGET="head"><IMG SRC="image/dot-red.gif" ALT="View Test" WIDTH="20" 
HEIGHT="20" BORDER="0"></A> </TD> 
<TD ALIGN="LEFT" VALIGN="MIDDLE"><FONT FACE="Arial">Sword 3.0 Speaker 
Cable</FONT></TD> 
<TD ALIGN="LEFT" VALIGN="MIDDLE"><FONT FACE="Arial">Test</FONT></TD> 
<TD ALIGN="LEFT" VALIGN="MIDDLE"><FONT FACE="Arial">Hi-Fi +</FONT></TD> 
<TD ALIGN="LEFT" VALIGN="MIDDLE"><FONT FACE="Arial">2005</FONT></TD> 
<TD ALIGN="LEFT" VALIGN="MIDDLE"><FONT FACE="Arial">UK</FONT></TD> 
</TR>'
;
  
$pattern "|<font[^>]+>(.*)</font>|isU";
  echo 
preg_replace($pattern"\\1"$text);
?>

   
 
 автор: BArt Simpson   (26.01.2006 в 14:37)   письмо автору
 
   для: cheops   (26.01.2006 в 14:32)
 

a <a href> перенести из первой колонки во вторую, и первую удалить

   
 
 автор: BArt Simpson   (27.01.2006 в 14:42)   письмо автору
 
   для: BArt Simpson   (26.01.2006 в 14:37)
 

немного может неправельно начал.....

Есть страница в интернет, на ней есть таблица!
нужно эту таблицу разобрать в многоуровневый массив, и из <a href=[адрес]><img src=...></a>
вытащить адрес

   
 
 автор: BArt Simpson   (27.01.2006 в 15:03)   письмо автору
 
   для: BArt Simpson   (27.01.2006 в 14:42)
 

Ладно, вот код..... (то что я намучал)


<?
    $text 
file_get_contents("http://www.jenving.se/reviews.htm");
    
$text stristr($text,'<HR WIDTH="630" ALIGN="CENTER">');
    
$text substr($text,0,strpos($text,"</TABLE>"));
    
$text stristr($text,'<TR>');
    
$text str_replace(">\r\n"">"$text);
    
$text str_replace("\r\n"" "$text);
    
$text str_replace("</TD>""||"$text);
    
$text str_replace("<TR>""\r\n<TR>"$text);
    
$text preg_replace("|<font[^>]+>(.*)</font>|isU""\\1"$text); 
    
$text preg_replace("|<A HREF=(.*) [^>]+>|isU""\\1"$text); 
    
$text preg_replace("|<A [^>]+ HREF=(.*)>|isU""\\1"$text);
    
$text strip_tags($text);
    echo
"<pre>";
    echo 
$text;
?>


но ведь наверно можно сделать тоже самое но проще?

И как результат упаковать в многомерный массив?

   
 
 автор: BArt Simpson   (30.01.2006 в 16:51)   письмо автору
 
   для: BArt Simpson   (27.01.2006 в 15:03)
 

Люди-человеки, помогите пожалуйста!!!!

   
 
 автор: cheops   (31.01.2006 в 14:01)   письмо автору
 
   для: BArt Simpson   (27.01.2006 в 15:03)
 

Да, обычно используют массивы, примерно следующим образом
<?php 
    $text 
file_get_contents("http://www.jenving.se/reviews.htm"); 
    
$text stristr($text,'<HR WIDTH="630" ALIGN="CENTER">'); 
    
$text substr($text,0,strpos($text,"</TABLE>")); 
    
$text stristr($text,'<TR>'); 
    
$pat = array(">\r\n""\r\n""</TD>""<TR>");
    
$rep = array(">"" ""||""\r\n<TR>");
    
$text str_replace($pat$rep$text); 
    
$pattern = array("|<font[^>]+>(.*)</font>|isU",
                     
"|<A HREF=(.*) [^>]+>|isU",
                     
"|<A [^>]+ HREF=(.*)>|isU");
    
$replacement = array("\\1""\\1""\\1");
    
$text preg_replace($pattern$replacement$text); 
    
$text strip_tags($text); 
    echo
"<pre>"
    echo 
$text
?>

   
 
 автор: cheops   (31.01.2006 в 14:03)   письмо автору
 
   для: BArt Simpson   (27.01.2006 в 15:03)
 

>И как результат упаковать в многомерный массив?
А что-то не очень понятно что значит упаковать в многомерный массив - у вас же одна строка на выходе?

   
 
 автор: BArt Simpson   (03.02.2006 в 12:51)   письмо автору
 
   для: cheops   (31.01.2006 в 14:03)
 

У меня на выходе данные такого типа

"pdf/sword_test.pdf" ||Sword 3.0 Speaker Cable||Test||Hi-Fi +||2005||UK||
"pdf/sword_es.pdf" ||Sword 3.0 Speaker Cable||Test||Alta Fidelidad||2004||Spain||
"http://www.tnt-audio.com/accessories/sword-rondo_e.html"||Sword 3.0 Speaker Cable||Test||www.tnt-audio.com ||2003||Internet||
"http://www.tnt-audio.com/accessories/sword-rondo_e.html"||Rondo 4x2.5 Speaker Cable||Test||www.tnt-audio.com ||2003||Internet||
"image/tricohfc.pdf"||Trico-RCA Video/Digital Cable||* * * * *||Hi-fi Choice||5/2003||England||
"image/award02.pdf" ||AV-3 Component Cable||* * * * *||What Hi-fi||10/2002 ||England||
"image/award02.pdf" ||X-Zac Fiber Optic Cable||* * * * *||What Hi-fi||9/2002 ||England||
"image/award02.pdf" ||Rondo 4x2.5 Speaker Cable||* * * * *||What Hi-fi||9/2002 ||England||
"image/award02.pdf" ||Scart RGB Cable||* * * * *||What Hi-fi||4/2002 ||England||
"http://www.gmx.cz/engpages/r_supraic_uk.htm"||EFF ISL Interconnect||Review ||www.gmx.cz||2001||www||
"http://www.gmx.cz/engpages/kab_r_supra_uk.htm" || PLY 3.4/S speaker cable||Review ||www.gmx.cz||2001||www||
"http://www.stereotimes.com/Supra_and_Ply.html" ||EFF-ISL and Screened PLY 3.4 ||Test ||Stereo Times||2001||U.S.A||
"http://www.hifichoice.co.uk/review_read.asp?ID=415" || PLY 3.4/S Speaker cable||Recommended||Hi-Fi Choice||8/2000 ||England||
"http://www.minhembio.com/artikel.asp?aid=49" ||FS Full Scart Cable (Swedish text)||Test ||minhembio.com||7/2001 ||www||
"cl_4_bb.htm" ||Classic 4.0 speaker Cable||Best Buy|| What Video & TV||4/2000 ||England||
"http://www.tnt-audio.com/accessories/ply34s_e.html" || PLY 3.4/S Speaker cable||Review ||www.tnt-audio.com|| 1999 ||www||
"eff_bb.htm" ||EFF-ISL Interconnect|| Best Buy||Hi-Fi Choice||3/1999 ||England||

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

   
Rambler's Top100
вверх

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