php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.06.2005, 09:24  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard preg_* um Zeichen zu ermitteln

Morgen Forum

Habe folgendes Problem. Ich habe eine Zeichenkette (bsp: "Hallihallo hie5r versteckt sich irgendwo eine Zahl").

Jetzt möchte ich herausfinden, wie die Zahl heisst. In Perl kann man einfach bei einer Regular Expression Klammern um die Expression setzen, welche man herausfiltern will und die wird dann automatisch im Scalar $1 gespeichert. Gibts für php etwas vergleichbares oder muss man sich da was zusammenbasteln? Wenn ja, was wäre da die geschickteste Variante?

Gruss Igäl

PS: Es muss nach einer beliebigen Needle gesucht werden können. Die 5 war nur ein Beispiel.

Edit: Lol ich dachte ich hät das durchgelesen: http://de2.php.net/function.preg_match

Hat sich erledigt. Danke
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.06.2005, 09:53  
Gast
 
Beiträge: n/a
Standard

Zitat:
Edit: Lol ich dachte ich hät das durchgelesen: http://de2.php.net/function.preg_match
Jo zb: preg_match_all() und Muster: #(\d+)#
 
Alt 01.06.2005, 10:02  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<?php
preg_replace
("/\[color=(\#[0-9A-F]{6}|[a-z]+)\]/si""<span style=color: ???>"$text);
?>
Wie kann ich hier das "(\#[0-9A-F]{6}|[a-z]+)" herausnehmen, damit ich das dann nachher im span - Tag einfügen kann?
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Alt 01.06.2005, 10:10  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

So schlussendlich hab ich auch das herausgefunden

die ??? einfach durch \\1 ersetzen.. Wenns das zweite Klammernkonstrukt in der RegExp ist halt durch \\2
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Alt 01.06.2005, 10:15  
Gast
 
Beiträge: n/a
Standard

Ich dachte du suchst nur nach Zahlen ?
Jetzt plötzlich RGB-Werte ...
 
Alt 01.06.2005, 11:08  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Besser als \\1 ist wie in Perl $1, z.B.
PHP-Code:
<?php
$text  
preg_replace('/\[color=(\#[\dA-F]{6})\]/siU''<span style=color:$1>'$text);
?>
__________________
Gruss
L
lazydog ist offline  
Alt 01.06.2005, 14:03  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Jetzt hab ich noch ein weiters Problem.

Folgende Replaces:

PHP-Code:
<?php
    $text 
preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is""\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>"$text);

    
$text preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is""\\1<a href=\"\\2\" target=\"_blank\">\\2</a>"$text);

?>
Nun: Die machen was ich will, ausser wenn ich nen Text schreibe, dann Enter drücke und dann die URL schreibe. Dann fallen die durchs Raster... Die Codes sind aus dem phpbb-forumsquelltext und da funktioniern sie wunderbar. Kennt wer diesen Fehler?

Danke lazydog. Ich kannte das bisher auch nur aus Perl. Wusste nicht dass das in PHP auch funkioniert...
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Alt 01.06.2005, 14:29  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Find nix drüber was bedeutet hier (^|[\n ])
?

Für mich sieht das aus wie: Es darf kein Pipezeichen, kein CRLF und kein Spacezeichen vor der URL haben. Jedoch werden diese Zeichen in den Scalar $1 gespeichert und nachher vor dem Link ausgegeben. Erscheint mir merkwürdig. Kann mir das jemand erklären?
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Alt 01.06.2005, 15:13  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Nein, das heisst hier, dass der folgende, geklammerte text entweder am Anfang der Variablen, nach einem Zeilenumbruch oder nach einer Leerstelle steht. Und das funktioniert nur, wenn der Zeilenumbruch auch aus "\n" besteht, also z.B. nicht unter Windows.
__________________
Gruss
L
lazydog ist offline  
Alt 01.06.2005, 15:17  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Was ist alternativ möglich?
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Benutze Zeichen anzeigen! cokotech Datenbanken 3 06.06.2008 18:24
erste 7 zeichen überprüfen aircrash PHP Tipps 2008 1 28.09.2007 09:11
Mehrsprachigkeit und kyrillische Zeichen Sclot PHP Tipps 2006 8 15.11.2006 08:07
Wieviel Pixel hat ein Zeichen? Ausmessen eines DIV-Container webazubi PHP-Fortgeschrittene 4 06.07.2006 14:52
Unsichtbares Zeichen - IE vs. Firefox Cyberbob_at_tot PHP Tipps 2006 13 13.02.2006 17:23
[Erledigt] Zeichen ersetzen in einem Dokument PHP Tipps 2007 16 25.11.2005 14:16
[Erledigt] XML mit chinesischen Zeichen PHP-Fortgeschrittene 7 30.10.2005 13:26
100 zeichen langen key erzeugen PHP Tipps 2005-2 25 16.09.2005 00:49
auf Mysql Datenbank Zeichen ersetzen durch andere ??? Tango PHP Tipps 2005-2 0 31.07.2005 20:14
[Erledigt] nur x zeichen zeigen PHP Tipps 2004-2 2 17.12.2004 15:10
nicht erlaubte Zeichen im SQL - String Datenbanken 0 16.10.2004 11:47
CRC Summe einer Datei ermitteln?? PHP Tipps 2004 1 14.10.2004 09:23
Die 1. 15 Zeichen anzeigen imported_Lumio PHP Tipps 2004 2 23.08.2004 16:16
Anzahl von Zeichen ermitteln PHP Tipps 2004 3 20.08.2004 15:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql umzeichen in der datenbank, $text = preg_replace( color=rgb, \spacezeichen in url\

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:59 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.