Ankündigung

Einklappen
Keine Ankündigung bisher.

string replace

Einklappen

Neue Werbung 2019

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

  • GELight
    hat ein Thema erstellt string replace.

    string replace

    Hi alle zusammen,

    Es wäre echt super, wenn ihr mir bei einem kleinen Problem helfen könntet.
    Ich habe eine HTML Datei, in der Links mit verschiedenen Pfaden drin stehen.
    Diese Pfade möchte ich gern auf eine bestimmte Weise umschreiben, da ich die HTML statisch verwenden möchte.

    Aus allen gefundenen Pfaden wie hier...

    /?p=my-page-1
    /?p=abc-de
    /?p=test

    ...soll dies werden:

    page-my-page-1.html
    page-abc-de.html
    page-test.html

    Kann man sowas nicht "irgendwie" über eine crazy regex in einem Rutsch machen?
    Ich bin wirklich kein großer Programmierer.
    Daher frage ich einfach mal direkt nach einer Lösung.
    Hoffe das ist okay für euch...

    Gruß Mario

  • GELight
    antwortet
    regex

    Ohh.. das tut mir leid.
    Jetzt tut er was.... supi.....
    Wenn wir jetzt noch das /? (slash und fragezeichen am anfang der url) wegbekommen könnten, dann wäre es perfekt.

    Irgendwie müssen diese beiden zeichen wohl ge'escaped werden oder?

    EDIT::::: Ich glaube ich habs... ... richtig so?
    $cnt = preg_replace('#\/\?p=(.*?)"#i', 'page-$1.html"', $cnt);

    Gruß Mario

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Nö, das ^ ist zuviel. Hättest du die Info früher gegeben dass die Links im HTML eingebettet sind...

    PHP-Code:
    preg_replace('#p=(.*?)"#i''page-$1.html"'$cnt); 

    Einen Kommentar schreiben:


  • GELight
    antwortet
    regex

    Hi tkausl,

    Vielen vielen Dank für die schnelle Antwort und deinen Lösungsvorschlag.
    Entweder mache ich noch was falsch oder es funktioniert noch nicht wirklich.
    Zumindest passiert bei mir hier irgendwie garnichts, wenn ich das auf meinen eingelesenen Dateiinhalt ausführe.

    Die href der links sehen so aus:
    PHP-Code:
    <a href="/?p=dashboard">....</a>
    <
    a href="/?p=ui-panel">....</a>
    <
    a href="/?p=ui-forms">....</a
    Ich gehe in einer Schleife alle meine Files durch und will darin dann diese Links umschreiben lassen. Derzeit habe ich dein Script mal versucht einzusetzen aber er macht einfach nichts.
    Kann es sein, dass hier auch noch das /? im regex irgendwie fehlt?
    PHP-Code:
    $cnt file_get_contents("gen/".$file);
    $cnt preg_replace('#p=(.*?)^#i''page-$1.html'$cnt);
    file_put_contents("gen/".$file$cnt); 
    Gruß Mario

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    p=(.*?)^ -> page-$1.html

    PHP-Code:
    preg_replace('#p=(.*?)^#i''page-$1.html'$src); 

    Einen Kommentar schreiben:

Lädt...
X