Antworten auf deine Fragen:
Neues Thema erstellen

hilfe bei regulärem ausdruck... foreach schleifen

lonelyhawk

Nicht mehr ganz neu hier

hej,

ich habe einen regulären ausdruck der mit preg_match_all durch texte marschiert und solche zeichenketten sucht:
Code:
[http://webadresse.de|sichtbarer linktext]
das klappt auch, die links werden dank dieses codes zu normalen links:
PHP:
preg_match_all($preg_url,$text,$treffer);
$treffer1 = array_unique($treffer[1]); // url
$treffer2 = array_unique($treffer[2]); // linktext
        
foreach($treffer1 as $dummy1){
        $text = str_replace( '['.$dummy1.'|', '<a href="'.$dummy1.'">',$text);
}
foreach($treffer2 as $dummy2){
        $text = str_replace( $dummy2.']', $dummy2.'</a>',$text);
}
wie schon geschrieben funktioniert dieser code, aber mich stören diese beiden for each schleifen. ich hätte gern nur eine. alle versuche die zusammen zu bringen sind bisher aber gescheitert. hat von euch jemand einen vorschlag dazu?
 
Zuletzt bearbeitet:

r3nt5ch3r

~ Allround pG ~

AW: hilfe bei regulärem ausdruck... foreach schleifen

z.B. so:
PHP:
preg_match_all($preg_url,$text,$treffer);
$treffer1 = array_unique($treffer[1]); // url
$treffer2 = array_unique($treffer[2]); // linktext
   
foreach($treffer1 as $key => $dummy1){ // $key gilt für beide Arrays, aber aufpassen mit dem array_unique^^
        $text = str_replace( '['.$treffer1[$key].'|', '<a href="'.$treffer1[$key].'">', $text);
        $text .= str_replace( $treffer2[$key].']', $treffer2[$key].'</a>',$text);
}
 
S

siroliver

Guest

AW: hilfe bei regulärem ausdruck... foreach schleifen

Hilfe ist hier auch drinn ;)
 

lonelyhawk

Nicht mehr ganz neu hier

AW: hilfe bei regulärem ausdruck... foreach schleifen

@r3nt5ch3r:

das klappt nicht ganz, jetzt ist der gesammte text verlinkt... hab gerade mal ein bisschen dran herum probiert, ist aber nicht wirklich besser geworden.
ist das eigentlich ok, dass die variable dummy1 dann in den beiden letzten zeilen nicht noch mal auftaucht?

@siroliver: vielen dank für den link, ist gleich in meine bookmarksammlung gewandert. aber mein eigentliches anliegen betrifft er nicht, mein regulärer ausdruck ist ja ok. ich möchte nur gern die forschleifen zusammen fassen.
 

r3nt5ch3r

~ Allround pG ~

AW: hilfe bei regulärem ausdruck... foreach schleifen

das klappt nicht ganz, jetzt ist der gesammte text verlinkt... hab gerade mal ein bisschen dran herum probiert, ist aber nicht wirklich besser geworden.
Ich weiß auch nicht weshalb $text in der oberen schleife erzeugt wird und unten dann wieder überschreiben. Damit wollte ich dir nur klar machen, dass man mit dem $key auf die gleichen Arrayelemente in beiden Arrays zugreifen kann.

ist das eigentlich ok, dass die variable dummy1 dann in den beiden letzten zeilen nicht noch mal auftaucht?

ja, weil $dummy1 == $treffer1[$key] ist!
 

netbandit

Aktives Mitglied

AW: hilfe bei regulärem ausdruck... foreach schleifen

@r3nt5ch3r:

statt
PHP:
$text .= str_replace( $treffer2[$key].']', $treffer2[$key].'</a>',$text);
lieber (ohne Pünktchen), wird ja sonst noch angehängt, soll doch aber ersetzen
PHP:
$text = str_replace( $treffer2[$key].']', $treffer2[$key].'</a>',$text);
btw. Vorschlag da ja eh schon preg_match_all benutzt wird, warum nicht gleich preg_replace. Kürzer geht es glaube ich nicht

PHP:
<?
$text='bla [http://webadresse.de|sichtbarer linktext] Und blubber [hTTp://domain.de|noch ein link] und ende.';
$text = preg_replace( "#\[http:\/\/(.+?)\|(.+?)\]#is" , "<a href=\"http://\\1\" title=\"\\2\">\\2</a>"  , $text);
echo $text;
?>
 
Zuletzt bearbeitet:

lonelyhawk

Nicht mehr ganz neu hier

AW: hilfe bei regulärem ausdruck... foreach schleifen

danke euch beiden. :) jetzt geht es. der punkt war der grund warum dein (r3nt5ch3r) code nicht so funktionierte wir er sollte.
also nochmal danke!
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.455
Mitglieder
67.558
Neuestes Mitglied
StarsMan
Oben