WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Funktion in regulären Ausdrücken

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Funktion in regulären Ausdrücken - 23 Nov 2024 Antworten
im Forum für Webhosting Homepage gefunden:
Funktion in regulären Ausdrücken
hagbard
Posting-Schinder
Threadstarter




Beiträge: 532


Ich ersetze etwas via preg_replace.

Ein Text wird durch folgendes Ersetzt:

1:
'$1',


Allerdings will ich, dass beim ersten mal $1 noch durch die Funktion url_ausgabe() läuft. Wie mache ich das?


---
"Wer mit künstlicher Intelligenz arbeitet, muß auch mit natürlicher Dummheit rechnen." (Klaus Kornwachs)

  Profil   Editieren   Zitieren
einstein
Quasselstrippe




Beiträge: 241

1: 
2: 
3:
preg_replace("/foo(.+)foo/e", 'yourfunction("\\1")', $str); 


edit: ohne /e geht natürlich nichts...

Diese Nachricht wurde geändert von: einstein
  Profil   Editieren   Zitieren
hagbard
Posting-Schinder
Threadstarter




Beiträge: 532


Funktioniert bei mir leider nicht.

---
"Wer mit künstlicher Intelligenz arbeitet, muß auch mit natürlicher Dummheit rechnen." (Klaus Kornwachs)

  Profil   Editieren   Zitieren
chip
Foren-Team




Beiträge: 419

Versuch's mal so:

1:
preg_replace("/foo(.+)foo/e", 'yourfunction("\\1")', $str);


Wichtig ist der PCRE-Modifier "e" am Ende, denn nur der erlaubt die Weiterverarbeitung in einer Funktion!

---

  Profil   Website   Editieren   Zitieren
hagbard
Posting-Schinder
Threadstarter




Beiträge: 532

Ich bekomm es einfach nicht hin.

Mein Code, wie er noch funktionierte
1: 
2: 
3:
preg_replace("#([a-z0-9_-][a-z0-9\._-]*@[a-z0-9_-]+(\.[a-z0-9_-]+)+)#is",'$1',$str);


Dann wollte ich nix anderes machen als die variable $1 durch die funktion mail_zerlegen() zu jagen.

Ich bekomme es nur leider nicht zum laufen.



---
"Wer mit künstlicher Intelligenz arbeitet, muß auch mit natürlicher Dummheit rechnen." (Klaus Kornwachs)

  Profil   Editieren   Zitieren
chip
Foren-Team




Beiträge: 419

Bei preg_replace werden die gefundenen Unter-Suchmuster aber nicht mit $1, $2, ... angesprochen, sondern mit \\1, \\2, usw.
Und vergiss den PCRE-Modifier nicht. Du hast ja schon i und s verwendet. Jetzt da noch e anhängen und beim "Ersetzen-Muster" die Funktion einsetzen.

---

  Profil   Website   Editieren   Zitieren
chip
Foren-Team




Beiträge: 419

Übrigens muss die Funktion auch noch richtig gestaltet sein (z.B. return-Anweisung nicht vergessen). Poste die Funktion einfach mal

---

  Profil   Website   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

chip schrieb am 29.02.2004 15:22
Bei preg_replace werden die gefundenen Unter-Suchmuster aber nicht mit $1, $2, ... angesprochen, sondern mit \\1, \\2, usw.


Das ist Käse. $n geht genau so gut und läuft z.B. auch hier im Forum.
Also bisher fehlt bei dir der Modifier e. Folgendes sollte Funktionieren:
1:
preg_replace("#([a-z0-9_-][a-z0-9\._-]*@[a-z0-9_-]+(\.[a-z0-9_-]+)+)#ise", url_ausgabe("$1")."hier der andere mist zum ersetzen $1", $str);

  Profil   Editieren   Zitieren
hagbard
Posting-Schinder
Threadstarter




Beiträge: 532


Jetzt läuft es. Ich habe es einfach nicht hinbekommen, dass vor und nach der Funktion noch Text angezeigt wird.

Danke!

---
"Wer mit künstlicher Intelligenz arbeitet, muß auch mit natürlicher Dummheit rechnen." (Klaus Kornwachs)

  Profil   Editieren   Zitieren
chip
Foren-Team




Beiträge: 419

languitar schrieb am 29.02.2004 16:17
chip schrieb am 29.02.2004 15:22
Bei preg_replace werden die gefundenen Unter-Suchmuster aber nicht mit $1, $2, ... angesprochen, sondern mit \\1, \\2, usw.


Das ist Käse. $n geht genau so gut und läuft z.B. auch hier im Forum.
Also bisher fehlt bei dir der Modifier e. Folgendes sollte Funktionieren:
1:
preg_replace("#([a-z0-9_-][a-z0-9\._-]*@[a-z0-9_-]+(\.[a-z0-9_-]+)+)#ise", url_ausgabe("$1")."hier der andere mist zum ersetzen $1", $str);


OK, hast ja recht. Ich hab mir das ganze nochmals in der PHP-Manual angeschaut. Ich wusste bloß vorher nicht, dass man die "Backreferences" auch wie Variablen ansprechen kann.

Sorry hagbard, sorry languitar

---

Diese Nachricht wurde geändert von: chip
  Profil   Website   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » Funktion in regulären Ausdrücken

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Funktion in regulären Ausdrücken im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8127829    Heute : 223     Gestern : 761     Online : 186     23.11.2024    9:25      0 Besucher in den letzten 60 Sekunden        
Nach oben