Hallo Martin,
wenn ich
if (preg_match ('href="(.*).css"', $alt) ) {
//do nothing
}
else {
//make regex substitution
}
benutze, erhalte ich folgenden Fehler
Warning: Delimiter must not be alphanumeric or backslash in /home/a1073-admin/www/dialekt/dialekt.php on line 85
Hmm, der delimiter, ach, preg_match arbeitet ja nach Perl Regex Syntax, als Delimeter brauchen wir also ein nicht alphanum Zeichen z.B."/"
(siehe http://www.php.net/manual/de/ref.pcre.php )
probier mal:
if (preg_match ("/href="(.*).css"/", $alt) ) {
if (preg_match ("/href="(.*).css"/i", $alt) ) {
für case-insensitive
...
/href="(.*).css"/ delimeter ist /
href="(.*).css" sollte dann auf alle Ausdrücke der Form
href="lja23sdFKSADf.css" zutreffen.
Versucht alle relativen Pfade in absolute zu wandeln, müßt ihr mal im Netz schauen, ich kann mich erinnern zu dem Thema was gelesen zu haben!
Kann dazu aber leider nix brauchbares finden.
wenn ich genau weiß, was ihr wollt, mach ich mir aber nochmal ein paar Gedanken.
Will nur bevor die Daten in $alt durch
$neu=preg_replace('/href="([^"]+)"/i','href="copyright.php?url=$1"',$alt);
ersetzt werden, alle Links in absolute (d.h. der Form http://) umwandeln, damt ich mit dem Audruck copyright.php?url= wieder auf meinen Filter verweisen kann.
also basedir sei http:://path/to/root/currentdir/
und Du hast z.B. href="../image/"
und du willst http:://path/to/root/image haben
Also für das rootdir und das currentdir gibt es php variablen. Einfach in der Doku auf php.net schauen.
Im Prinzip mußt Du nur bei allen ".." das letzte Verzeichnis vom currentdir löschen, bei "." einfach garnix machen, und dann den Rest des relativen Pfades anhängen.
Beachtet, daß es aber auch absolute Pfade der Form "/CurrentDir/Dir2/" gibt!
Liebe Grüße
Martin