SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.10.2013, 00:45:27
Tuxman Tuxman ist offline
Anfänger
 
Registriert seit: Dec 2006
Beiträge: 83
Tuxman befindet sich auf einem aufstrebenden Ast
preg-Regex ist nicht "global"?!

preg_replace, so will es die Theorie, ist standardmäßig "global".

Nun... ich versuche mich gerade an einem Skript, das in einem WordPress-System (das "..." automatisch durch &8220;...&8221; ersetzt) anständige deutsche Anführungszeichen einfügen soll, ohne die HTML-Tags zu zerschießen.

Das klappt so weit:

PHP-Code:
$originaltext "<em>Frei wie in &8220;freie Rede&8221;, nicht wie in &8220;Freibier&8221;.</em>";

$regex '~(?<!=)&\#8220;(?!>)([^"\r\n]+)&\#8221;(?!>)~x';
$content preg_replace($regex'„$1”'$originaltext); 
Tja. Das erste Ergebnis ersetzt er - das zweite nicht. Und das in JEDEM Beispieltext, den ich finden konnte.

Zitat:
Frei wie in „freie Rede”, nicht wie in “Freibier”.
Ideen?
__________________
tuxproject.de
Mit Zitat antworten
  #2  
Alt 09.10.2013, 13:06:21
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 69
Beiträge: 4.001
meikel befindet sich auf einem aufstrebenden Ast
AW: preg-Regex ist nicht "global"?!

Das wäre wohl zu einfach?
http://mod.php.developer.vc/str_replace-1/ (Quelltext wird angezeigt)
Mit Zitat antworten
  #3  
Alt 09.10.2013, 14:05:26
Tuxman Tuxman ist offline
Anfänger
 
Registriert seit: Dec 2006
Beiträge: 83
Tuxman befindet sich auf einem aufstrebenden Ast
AW: preg-Regex ist nicht "global"?!

Nein, "zu einfach" trifft es nicht. ;)
Eher zu unflexibel - es sei denn, du hast einen Suchen-String für str_replace parat, der die gewünschte Funktionalität mit allen Sonderfällen abbildet...?

(Ich möchte ähnlich auch für einfache Anführungszeichen vorgehen, und da wird's mit allen 's und 'n ("Ich hab'n Haus, du hast 'n Haus, 's ist ein schönes Haus, 'siehst du das auch so?' fragte er" usw. usf.) schon etwas unübersichtlich - oder übersehe ich gerade etwas ganz Wesentliches? Das wäre natürlich prima!)

Auch dann bliebe meine Frage aber bestehen: Warum ist preg_replace nicht fähig zu mehreren Ersetzungen?
__________________
tuxproject.de
Mit Zitat antworten
  #4  
Alt 09.10.2013, 14:32:18
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 69
Beiträge: 4.001
meikel befindet sich auf einem aufstrebenden Ast
AW: preg-Regex ist nicht "global"?!

Zitat:
Zitat von Tuxman Beitrag anzeigen
Nein, "zu einfach" trifft es nicht. ;)
Eher zu unflexibel - es sei denn, du hast einen Suchen-String für str_replace parat, der die gewünschte Funktionalität mit allen Sonderfällen abbildet...?
Ich hatte mich nur auf Dein Beispiel bezogen.

Natürlich is das hartes Holz, aus US-ASCII typographisch sauberen Text zu basteln. Obwohl ich mir mit DTP zwischen '90 und '94 meine täglichen Brötchen verdient hatte, sind meine typographischen Kenntnisse eher dürftig.
Zitat:
(Ich möchte ähnlich auch für einfache Anführungszeichen vorgehen, und da wird's mit allen 's und 'n ("Ich hab'n Haus, du hast 'n Haus, 's ist ein schönes Haus, 'siehst du das auch so?' fragte er" usw. usf.) schon etwas unübersichtlich -
Zitat:
oder übersehe ich gerade etwas ganz Wesentliches?
Nein.
Zitat:
Auch dann bliebe meine Frage aber bestehen: Warum ist preg_replace nicht fähig zu mehreren Ersetzungen?
Um PCRE mache ich meist einen großen Bogen, weil ich meine Probleme mit der Pattern-Geheimschrift habe.

Dein Suchstring war allerdings "zu gierig" aka die Option U hatte gefehlt:
http://mod.php.developer.vc/pcre-2/ (Quelltext wird angezeigt)
Mit Zitat antworten
  #5  
Alt 09.10.2013, 15:15:14
Tuxman Tuxman ist offline
Anfänger
 
Registriert seit: Dec 2006
Beiträge: 83
Tuxman befindet sich auf einem aufstrebenden Ast
AW: preg-Regex ist nicht "global"?!

Ah, danke, daran lag's! :) Daran hatte ich gar nicht gedacht. Ärgerlich!
__________________
tuxproject.de
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Regex für e-mail oder php filter verwenden? R4Zz0R PHP Entwicklung und Softwaredesign 0 26.12.2010 03:15:06
IP regex Prokonskull PHP Grundlagen 7 02.11.2009 16:39:32
Regex: Bilder und Urls (Links) parsen Achim74 PHP Grundlagen 2 21.04.2009 09:15:32
regex filter, preg flobee PHP für Fortgeschrittene und Experten 0 14.12.2004 17:56:24
regex problem - und/nicht |Coding PHP für Fortgeschrittene und Experten 2 01.08.2003 15:03:59


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:46:56 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.


© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt