Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Parsowanie WIKI
Forum PHP.pl > Forum > PHP
pieto
Witam jak w temacie
mam takie cuś

  1. <?php
  2. $content  = preg_replace('%{|(.*?)|}%s','',$content );
  3. ?>


do ominiecia tabel wiki, kod dziala do mementu kiedy w tabeli nie znajdzie druga tabela,
Czy ktos poradzi jak wykopac taka tabelę ?

potrzebuje np usunac caly kod

  1. <?php
  2. {| border=1 align=right cellpadding=4 cellspacing=0 width=300 style="margin: 0 0 1em 1em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
  3. |+ '''Warszawa'''
  4. |+  
  5. |----
  6. | align="center" colspan="2" |
  7. {| border="0" cellpadding="2" cellspacing="0"
  8. | align="center" width="180px" | 125px|Syrenka - symbol Warszawy
  9. | align="center" width="180px" | 125px|Flaga Warszawy
  10. |----
  11. | align="center" style="background:#efefef;" width="180px" |
  12. | align="center" style="background:#efefef;" width="180px" |
  13. |}
  14. |----
  15. | align="center" colspan="2" style="border-bottom:3px solid gray;" | Dewiza herbowa: ''Semper invicta'' (''Zawsze niezwyci&#281;żona'')
  16. |----
  17. !colspan="2" | 280px|Po&#322;ożenie Warszawy
  18. |----
  19. |
  20. | mazowieckie
  21. |----
  22. | Samorz&#261;d miejski
  23. | ''Rada miasta st. Warszawy''
  24. |----
  25. | Prezydent miasta
  26. |
  27. |----
  28. |
  29. | 516,90 km˛
  30. |----
  31. | D&#322;ugość  Szerokość
  32. | 21° 02' E  52° 13' N
  33. |----
  34. | Wysoko&#347;ć
  35. | 78 - 115 m
  36. |----
  37. |  - miasto(30 VI ) - g&#281;stość -  
  38. | 1 690 8213258/km˛  2 269 000
  39. |----
  40. | Za&#322;ożone  
  41. | w u  -
  42. |----
  43. |  od
  44. |
  45. |----
  46. | Numer kierunkowy
  47. | +48 22
  48. |----
  49. | Kod pocztowy
  50. | 00-xxx do 04-xxx,05-xxx (miejscowo&#347;ci podwarszawskie)
  51. |----
  52. | Domena internetowa
  53. | WAW.PL
  54. |----
  55. | Tablice rejestracyjne
  56. | WA, WB, WD, WE, WF, WH, WI, WJ, WK, WN, WT, WU, WWA, WWF, WWG, WWH, WWJ, WWW, WWK, WWL, WWM, WWN, WWV, WX, WXY, WY
  57. |----
  58. |
  59. | , ,
  60. |----
  61. | Miasta partnerskie
  62. | , , , , , , , , , , , ,  
  63. |----
  64. | align="center" colspan="2" style="border-bottom:3px solid gray;" | [http://um.warszawa.pl Strona internetowa miasta]
  65. |}
  66. ?>
zegarek84
można by jeszcze bardziej oczyścić źródło ale i tak jest już dosyć skompresowane ]:->

  1. <?php
  2. $file='http://pl.wikipedia.org/wiki/D%C5%82ugopis';
  3. $txt=file_get_contents($file);
  4. $tresc =  new DOMDocument();
  5. @$tresc->loadHTML($txt);
  6. $content=$tresc->getElementById('content');
  7. $table=$content->getElementsByTagName('table');
  8. $od=$table->length -1;for($i=$od;$i>=0;--$i){$childNode=$table->item($i) ; $childNode->parentNode->removeChild($childNode);}
  9. $puste=$content->getElementsByTagName('*');$od=$puste->length -1;for($i=$od;$i>=0;--$i){$childNode=$puste->item($i);if(preg_match('/^[ \tr\n]*?$/is',$childNode->nodeValue)) $childNode->parentNode->removeChild($childNode);}
  10. $edit=$content->getElementsByTagName('span');$do=$edit->length;for($i=0;$i<$do;++$i){if($edit->item($i)->getAttribute('class')=='editsection')$etab[]=$i;}
  11. $od=count($etab)-1;for($i=$od;$i>=0;--$i){$childNode=$edit->item($etab[$i]) ; $childNode->parentNode->removeChild($childNode);};
  12. $a=$content->getElementsByTagName('a');$do=$a->length;for($i=0;$i<$do;++$i){$href=$a->item($i)->getAttribute('href');if(!preg_match('/^(?:http://|www.).+$/is',$href))$a->item($i)->setAttribute('href', 'http://pl.wikipedia.org'.$href);}
  13. $usun = array(
  14. '/<!--.*?-->/is',
  15. '//*.*?*//is',
  16. '/<script.*?</script>/is'
  17. );
  18. $text = preg_replace($usun, '', $tresc->saveXML($content));
  19. $text = preg_replace('/>[ \tr\n]*?</is', '><', $text);
  20. echo $text;
  21. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.