Mailinglisten-Archive |
harald_hanek at hotmail.com wrote: > wie kann ich in einem Dokument alle Links finden die noch keine PHPSESSID am Ende drann haben und diese > ersetzen (bzw. erweitern), in dem ich die PHPSESSID drannhänge. was spricht gegen session.use_trans_sid in der php.ini ? > Aktion a la preg_replace bekomme ich mangels Wissen über den Korrekten aufbau des Patterns nicht hin, also in > dem ich ausschließe, etc. du musst auch beachten ob bereits ein Parameter anhängt, also ob du &SID oder ?SID, und ob eventuell ein #abschnitt anhängt seite.php seite.php?para=1¶=2#abschnitt2 > <?php > > $pattern = '=^(.*)<a(.*)href\="?(\S+)"([^>]*)>(.*)</a>(.*)$=msi'; // Findet erst mal alle Links > $replace = "content.php......und die Session drann"; > $text = preg_replace($pattern, $replace, $document); > ?> // Findet erst mal alle Links // findet: // ?para=1 in link.htm?para=1#abschnitt2 // oder ?para=1¶=2 in link.htm?para=1¶=2 // einmal mit ? $pattern = '|<a[^>]+href=\"[^\?#\"]*\?([^#\"])*|msi'; $replace = '\\1&' . SID; // & ? // einmal ohne ? $pattern = '|<a[^>]+href=\"[^\?#\"]*(?:#|\")+|msi'; $replace = '?' . SID . '\\1'; irgendwie so, habs jetzt nicht probiert $text = preg_replace( $pattern, $replace, $document ); > Vieleicht kann mir jemand auf die Sprünge helfen. Danke und schönen Tag noch. Und was ist mit "header( 'Location: ...' );" und Formularen? -- Sebastian Mendel www.sebastianmendel.de www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet
php::bar PHP Wiki - Listenarchive