Ankündigung

Einklappen
Keine Ankündigung bisher.

string replace

Einklappen

Neue Werbung 2019

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

  • 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


  • #2
    p=(.*?)^ -> page-$1.html

    PHP-Code:
    preg_replace('#p=(.*?)^#i''page-$1.html'$src); 
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      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

      Kommentar


      • #4
        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); 
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          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

          Kommentar

          Lädt...
          X