kleines problem bei preg_replace

KiteRider

Grünschnabel
hallo!

leider hat mir die formssuche nicht weit gebracht.

zurzeit schaut der regex-ausdruck den ich gefunden hab so aus
Code:
preg_match_all("@(<a[^>]*>(.*?)</a>)|(<[^a][^>]*>)@", $content2, $matches);

es werden alle zeichen außerhalb der html-tags ersetzt. funktioniert auch gut soweit.

aber bei
HTML:
<a href="http://www.tagesschau.de/">ARD Tagesschau</a>
beispielsweise, wird ARD Tagesschau nicht ersetzt, eh klar, ist ja nicht außerhalb

wie muss ich den regex-ausdruck ändern, damit auch in meinem fall "ARD Tagesschau" ersetzt wird.

tut mir leid, für diese frage, aber bin noch neu in php, drum hab ichs nicht so mit regex
 
Ich dachte bisher, man ersetzt in PHP Matches von regulären Ausdrücken mit [phpf]preg_replace[/phpf]? Was genau versuchst du denn zu erreichen? Einfach zu sagen, dass etwas ersetzt werden muss, sagt leider nicht aus, womit du es ersetzen möchtest. Auf der Basis dieses Wissens kann ich dir gerne helfen.
 
kleines problem bei preg_MATCH

ups sorry, in der ganzen preg-sache hab ich vorschnell geschrieben.
preg_match_all ist schon korrekt. ich möchte ja zuerst suchen.
mit dem obigen regex ausdruck, bekomm ich alle zeichen die außerhalb der tags sind.

jetzt möcht ich aber bei einem <a href></a>-link wie diesen hier:
HTML:
<a href="http://www.tagesschau.de/">ARD Tagesschau</a>

ARD Tagesschau soll auch "übersetzt" werden, weil ich hab ein Array(a-zA-Z0-9) und das soll durch das andere Array(anderes geeignetes Alphabet) ersetzt werden.
 
Zuletzt bearbeitet:
jetzt habe ich mittel preg_match eine liste aller links extrahiert.

würd folgendes gehen?
wenn auf der webseite ein link geklickt wird, soll der URL des links in eine variable gespeichert und mit den links in der liste verglichen werden.

mein problem ist der erste teil, wie man geklickten link erkennt und den URL ausliest?
 
Dein eigentliches Problem - So Leid es mir tut - verstehe ich nicht, was aber höchstwahrscheinlich an mir liegt.

Nun zu deiner letzten Frage (sofern ich diese richtig verstehe ^^ ):
Einen Klick auf einen Link kannst du so direkt nicht nachvollziehen, dazu ist ein kleiner Umweg notwendig. Man lege dazu ein Script an, welches ich mal ganz einfach refer.php nennen würde. Dieses beinhaltet nun eine Logroutine, die mit einem via GET übermittelten Parameter schaut, auf welche Seite verwiesen werden soll - Also zB (ungetestet)
PHP:
<?php
if ( !empty( $_GET[ 'to' ] ) &&
     preg_match( "%^http://(?:[\-a-z0-9]+.)*[\-a-z0-9]+.[a-z]+(?:/.*)$%is", $_GET[ 'to' ], $matches )
    ) {
    // URL kopieren. Statt $matches[ 1 ] geht auch $_GET[ 'to' ]
    $forward = $matches[ 1 ];
    // Logpprozedur hier...
    
    // Weiterleitung...
    header( "Location: {$forward}" );
    // gleich danach Script via exit oder die beenden!
}
exit;
 
Zurück