preg_replace greift nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • TobiaZ
    antwortet
    OffTopic:
    Grüße an derHund. Sehr gute Seite!

    Einen Kommentar schreiben:


  • battlewizz
    antwortet
    So habs gelöst, mit hilfe dieser Seite.

    Mein Pattern sieht jetzt so aus:

    PHP-Code:
    $pattern '#<table .* >.*<td align=\"center\">
    <a (.*)<br>.*<td align=\"right\" class=\"thmautor\">(.*)</td>.*
    <td class=\"thmtext\"><a (.*) align=\"right\"></a>
    (.*)</td></tr>
    </table>.*</table>#is'

    Einen Kommentar schreiben:


  • battlewizz
    antwortet
    Original geschrieben von TobiaZ
    Nein, dass kann ja kein mensch lesen! korrigieren!

    versuch deine regex erstmal mit preg match zu vereinfachen, so dass du nur das nötigste drin hast. die bauste dann stück für stück auf. immer einen wert (backreference) mehr ein bauen, bis du alle benötigten hast.

    ich sehe auch keinen grund den halben quelltext in die rule zu bauen.
    Habs korrigiert, sorry... ._.

    Naja ich hab versucht das ganze schrittweise zu machen, bin aber bereits beim ersten <table></table> gescheitert, leider...

    Einen Kommentar schreiben:


  • jahlives
    antwortet
    PS: Sorry für die Riesenseitenbreite. ^^'''
    Dann korrigiere das umgehend, pronto und sofort

    Einen Kommentar schreiben:


  • TobiaZ
    antwortet
    Nein, dass kann ja kein mensch lesen! korrigieren!

    versuch deine regex erstmal mit preg match zu vereinfachen, so dass du nur das nötigste drin hast. die bauste dann stück für stück auf. immer einen wert (backreference) mehr ein bauen, bis du alle benötigten hast.

    ich sehe auch keinen grund den halben quelltext in die rule zu bauen.
    Zuletzt geändert von TobiaZ; 04.09.2007, 11:01.

    Einen Kommentar schreiben:


  • battlewizz
    hat ein Thema erstellt preg_replace greift nicht.

    preg_replace greift nicht

    Hallo,

    ich lasse mittels php einen Text aus einer Datei auslesen und in eine Datenbank schreiben. Dieser Text sieht ausschnittsweise ungefähr so aus:

    Code:
    (...)Kein Mini mit vier Ringen<br />
    
    <table width="1%" border="0" cellspacing="0" cellpadding="0" bgcolor="#d0d0d0" align="right" >
    <tr><td align="center">
    <a href="http://www.xyz.de/_/tools/picview.html?_CMELEM=754823" target="PIC754823" 
    onClick="window.open('http://www.xyz.de/_/tools/picview.html?_CMELEM=754823','PIC754823',
    'width=480,height=412,scrollbars=no');return(false);">
    <img border="0" vspace="2" hspace="2" src="http://www.xyz.de/storage/pic/alfa/wt/wirtscha/754823_0_142446891_7002.jpg"
     width="80" height="44" alt="" />
    <br></a></td></tr>
    <tr><td align="right" class="thmautor"></td></tr>
    <tr><td><table align="center" width="100%" cellspacing="0" cellpadding="4" border="0">
    <tr><td class="thmtext">
    <a href="http://www.xyz.de/_/tools/picview.html?_CMELEM=754823" target="PIC754823" 
    onClick="window.open('http://www.xyz.de/_/tools/picview.html?_CMELEM=754823','PIC754823',
    'width=480,height=412,scrollbars=no');return(false);"><img src="../uploads/pics/lupe.gif" 
    border="0" width="38" height="9" align="right"></a>
    
    So soll er ungef&#228;hr aussehen, der Audi A1. Auff&#228;llig sind der gro&#xDF;e K&#252;hlergrill und die coup&eacute;hafte Seitenlinie. 
    Das neue Einstiegsmodell der Marke wird zun&#228;chst als Dreit&#252;rer erh&#228;ltlich sein, die Preise 
    starten etwa bei 17 000 bis 18 000 Euro.Foto: privat
    </td></tr></table>
    </td></tr></table>
    
    <p>Dieses Mal soll alles besser werden.(...)
    Nun möchte ich den Text so verändern dass die tables durch divs ersetzt werden, also ca. so:

    Code:
    <div class="bildbox">
    <div class="bildbox_thumb">Bild</div>
    <div class="bildbox_zeile">Untertitel</div>
    <div class="bildbox_text"><p>Text</p></div>
    </div>
    ich habs mit folgendem code versucht:
    PHP-Code:
    $search '/<table width="1%" border="0" cellspacing="0" cellpadding="0" bgcolor="#d0d0d0" align="right" >
    <tr><td align="center">(.*?)<br><\/a><\/td><\/tr>
    <tr><td align="right" class="thmautor">(.*?)<\/td><\/tr>
    <tr><td><table align="center" width="100%" cellspacing="0" cellpadding="4" border="0">
    <tr><td class="thmtext">(.*?)
    <\/td><\/tr><\/table>
    <\/td><\/tr><\/table>/'
    ;
    $ergebnis preg_replace($search'<div class="bildbox">
    <div class="bildbox_oben"></div>
    <div class="bildbox_mitte">
    <div class="bildbox_thumb">$1</a></div>
    <div class="bildbox_zeile">$2 $3</div>
    <div class="bildbox_text"><p>$4</p></div></div>
    <div class="bildbox_unten"></div>
    </div>'
    $bodytext); 
    Allerdings bleibt mein Text immer derselbe, mit den Tabellen. Ich hab hin und her probiert aber nie wurde auch nur ein Zeichen aus dem Text ersetzt. Kann mir vielleicht jemand beim erstellen des richtigen Suchmusters helfen?

    Würde mir sehr helfen.

    PS: Sorry für die Riesenseitenbreite. ^^'''

    Gruß
    BattleWizz
    Zuletzt geändert von battlewizz; 04.09.2007, 11:09.
Lädt...
X