tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
525
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    hpatrick hpatrick ist offline Mitglied
    Registriert seit
    Dec 2005
    Beiträge
    19
    Hallo,

    ich hab ein Problem:

    Und zwar möchte ich gerne ebenfalls das Modul mod-Rewrite nutzen. Das funktioniert auch alles schön und gut, nur leider sind viele, viele Links in den ganzen PHP Skripten, den Templates und auch der Datenbank bereits in der alten Form gespeichert.

    Ich hab mal angefangen und versucht alle zu ersetzen, was aber im Prinzip sinnlos war (-> zu viele Links).

    Gibt es eine Möglichkeit, die Links "On-The-Fly", also direkt, wenn ein Benutzer die Seite aufruft, dementsprechend zu ändern, oder ist dies nicht möglich?

    Natürlich kenn ich alle Variablen, die in der URL vorhanden sein können.


    Wie kann ich hier vorgehen?
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Du könntest in deinen Seiten eingangs den Ausgabepuffer aktivieren, und am Ende jedes Skriptes den String, der sich im Puffer befindet, mit regulären Ausdrücken nach Links durchsuchen und diese ändern.

    Ob der Einbau dieser Sache jedoch einfacher ist, als alle Links per Hand zu Ändern, ist fraglich.

    Eine andere Möglichkeit sehe ich nicht, da die Links ja offensichtlich dynamisch erzeugt werden und nicht statisch in den Skripten stehen.
     

  3. #3
    hpatrick hpatrick ist offline Mitglied
    Registriert seit
    Dec 2005
    Beiträge
    19
    Also dynamisch in dem Sinne werden Sie nicht erzeugt, da hab ich mich vielleicht falsch ausgedrückt.

    Die Links stehen sowohl in der Datenbank als auch in den Templates direkt drin, sprich PHP fügt keine Variable hinzu oder ändert Sie.
    In den PHP Datein stehen die Links "indirekt" drin. Also die Inhalte für die Variablen werden noch mit PHP dynamisch eingefügt. Beispiel:

    So steht das bspw. in den Templates
    HTML-Code:
    [...]href="index.php?id=5&action=write&highlight=test"[...]
    So steht das bspw. in den PHP Dateien
    PHP-Code:
    [...]href="index.php?id=".$id."&action=".$action."&highlight=".$highlight."[...] 
    Problem hier nur, nicht in jeder PHP Datei, bzw. in jedem Link werden alle Variablen mit benutzt. Es kann bspw. Vorkommen, dass nur die ID mit übergeben wird.
     

  4. #4
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Na wenn es so ist, dann würde sich eher anbieten, das gleich neu in die Dateien zu schreiben.
    Du könntest das auch mit PHP machen... die Vorgehensweise wäre analog zu der beschriebenen mit dem Ausgabepuffer..

    Du machst ein Skript, welches jedes einzelne PHP-Skript und Template auf dem Server öffnet und änderst dann anhand regulärer Ausdrücke die entsprechenden Passagen...dasselbe dann nochmal in der DB.

    Auf jeden Fall würd ich aber von allem ein Backup erstellen...man kann ja nie wissen
     

  5. #5
    hpatrick hpatrick ist offline Mitglied
    Registriert seit
    Dec 2005
    Beiträge
    19
    und da ist dann der Befehl
    PHP-Code:
    preg_replace 
    mein Freund, stimmts?
     

  6. #6
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Ja... zu dem musst du nett sein, dann erledigt er das für dich
     

  7. #7
    hpatrick hpatrick ist offline Mitglied
    Registriert seit
    Dec 2005
    Beiträge
    19
    Alles klar vielen Dank!
     

Ähnliche Themen

  1. Modrewrite - index.php nur ohne get Variablen weiterleiten
    Von hans jörg im Forum Hosting & Webserver
    Antworten: 5
    Letzter Beitrag: 23.03.09, 14:23
  2. Antworten: 6
    Letzter Beitrag: 07.05.08, 15:57
  3. Variablen-Typ für URLs
    Von sheeba1507 im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 21.08.07, 22:11
  4. Antworten: 3
    Letzter Beitrag: 04.08.05, 11:36
  5. Antworten: 4
    Letzter Beitrag: 06.08.02, 13:05