php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.08.2006, 17:10  
Benutzer
 
Registriert seit: 15.01.2004
Beiträge: 68
Dave Waterstone
Dave Waterstone eine Nachricht über ICQ schicken Dave Waterstone eine Nachricht über Yahoo! schicken
Standard n - zeichenfolge in einem string ersetzten

habt ihr ne ahnung wie ich mit php einen string durchsuchen kann und bestimmte dinge ersetzte?
ok, das weiß ich auch aber es geht um folgendes.
der string kann so aussehen.

"hallo Brain,#huhu und wie gehts dir so?#müde ich könnte schlafen...."

es sind also n viele einträge von #wasauchimmer möglich.
ich habe nun

Code:
$x=0;
		while (ereg("^[a-zA-Z0-9]*[:alnum:]*[:digit:]*#([a-zA-Z0-9]+)[[:blank:]|[:space:]]+[a-zA-Z0-9]*[:alnum:]*[:digit:]*$",$message,$text)){
		
			$ersetzen = ' [img]smiles_extra/'.$text[$x].'.gif[/img] ';
			$message = ereg_replace("^#([a-zA-Z])[[:blank:]|[:space:]]+$",$ersetzen,$message);
			$x++;
		}
jetzt komme ich hier aber nicht weiter.
__________________
.::Wenn das Rauskommt, wo ich überall reinkomme, komme ich da Rein, wo ich so schnell nicht mehr Rauskomme::.
.:ie drei natürlichen Feinde des WebWorkers: Frischluft, Sonnenschein und das unerträgliche Gebrüll der Vögel.::
Dave Waterstone ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.08.2006, 19:02  
Benutzer
 
Registriert seit: 15.01.2004
Beiträge: 68
Dave Waterstone
Dave Waterstone eine Nachricht über ICQ schicken Dave Waterstone eine Nachricht über Yahoo! schicken
Standard

so, ich habe es nun fast geschafft...
dennoch wäre ich über einen Hinweis dankbar...oder auch die lösung^^


Code:
$x=0;
		while (ereg("#([a-zA-Z]*)",$message,$text)){	
			$bild = ereg_replace("#","",$text[$x]);
			$message = ereg_replace("#([a-zA-Z]*)","<img src=\"smilies_extra/".$bild.".gif\" border=\"0\">",$message);
			$x++;
		}
Nun erstezt es wenigstens alles was ersetzt werden soll, aber eben alle zuersetzenden Wörter auf einmal....
das soll ja nicht sein.
es soll eben nicht alle auf einmal ersetzten, sondern alles nach ein ander da die platzhalter ja immer andere Bilder einsetzten sollen.

Einer ne idee?
__________________
.::Wenn das Rauskommt, wo ich überall reinkomme, komme ich da Rein, wo ich so schnell nicht mehr Rauskomme::.
.:ie drei natürlichen Feinde des WebWorkers: Frischluft, Sonnenschein und das unerträgliche Gebrüll der Vögel.::
Dave Waterstone ist offline  
Alt 24.08.2006, 02:28  
Benutzer
 
Registriert seit: 16.10.2004
Beiträge: 90
freitz
Standard

1.) poste was du überhaupt haben / wissen willst !!
2.) falls ich dich richtig verstanden hab willst du #... ersetzen durch gleichnamige bilder, also in dem fall: #huhu durch <img src=smilies/huhu.gif> und #müde durch <img src=smilies/müde.gif> ???

wenn ja dann lautet die lösung:
PHP-Code:
<?php
$text 
preg_replace('{\#(.*) }Ui''<img src=${1}.gif> '$text);
__________________
mgtt 2007
freitz ist offline  
Alt 24.08.2006, 04:25  
Benutzer
 
Registriert seit: 15.01.2004
Beiträge: 68
Dave Waterstone
Dave Waterstone eine Nachricht über ICQ schicken Dave Waterstone eine Nachricht über Yahoo! schicken
Standard

jupp danke...
das habe ich gewollt.
HM, dachte ich hätte gepostet was ich wollte aber ok, ich versuche es beim nächsten mal etwas genauer...
Dave Waterstone ist offline  
Alt 24.08.2006, 10:22  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Zitat:
Zitat von freitz
PHP-Code:
<?php
$text 
preg_replace('{\#(.*) }Ui''<img src=${1}.gif> '$text);
Das gibt einem Angreifer alle Möglichkeiten für einen netten CSS-Angriff. Wenn das z.B. Teil deines Gästebuchs in deinem CMS ist, dann braucht dieser hier nur ein JavaScript einzusetzen, dass ihm z.B. deinen Session-Keks zuschickt.

Also besser mal die erlaubte Zeichenmenge nach dem # eingrenzen.

Basti
Basti ist offline  
Alt 24.08.2006, 13:52  
Benutzer
 
Registriert seit: 16.10.2004
Beiträge: 90
freitz
Standard

ein problem gibts auch noch
es wird nach einer zeichenkette zwischen raute(#) und leerzeichen( ) gesucht ... wenn aber statt dem leerzeichen ein absatz kommt gibts probleme ... d.h. würd ich einfach nen start- und end-tag verwenden .. wobei allgemein die idee mit der raute nicht besonders gut ist, weil man dieses zeichen auch so verwendet, ohne die absicht ein bild zu posten.

mfg alex
__________________
mgtt 2007
freitz ist offline  
Alt 24.08.2006, 18:09  
Gast
 
Beiträge: n/a
Standard

nimm ein anderes Zeichen, etwa · - damit codet kein Schwein

und wg. der Namenskonvetion - beschränke es einfach aufs Normale - a-z, 0-9, bindestrich und unterstrich und ruhe iss

$text = preg_replace('{\#([a-z,0-9,-,_]) }Ui', '<img src=${1}.gif> ', $text);
 
Alt 25.08.2006, 07:14  
CIX88
Gast
 
Beiträge: n/a
Standard

Zitat:
[a-z,0-9,-,_]
Was soll das Komma in der Zeichenklasse ?
Kannste weg lassen.
 
 


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
Event abfangen Ambience JavaScript, Ajax und mehr 4 30.08.2007 14:36
String auslesen Shaira PHP Tipps 2006 11 01.12.2006 17:52
String durchsuchen und ersetzen unabhängig von Groß / KLein PHP Tipps 2006 2 09.07.2006 23:29
Alle Felder nach String durchsuchen Jacks Rache Datenbanken 6 08.08.2005 09:46
In allen Spalten nach String suchen Jacks Rache Datenbanken 0 05.08.2005 20:15
In allen Tabellen nach String suchen Jacks Rache Datenbanken 0 05.08.2005 11:18
String in allen Spalten suchen Jacks Rache Datenbanken 0 05.08.2005 09:43
Alle Spalten nach String durchsuchen Jacks Rache Datenbanken 0 05.08.2005 09:41
string -> int, nur wenn string zahl ist PHP Tipps 2005-2 3 06.06.2005 12:33
where string von einer funktion zu anderen transportieren PHP Tipps 2005 5 03.03.2005 16:29
php code als string umwandeln PHP Tipps 2005 8 23.02.2005 18:03
String auf bestimmte Breite (Pixel) kuerzen... mudo PHP-Fortgeschrittene 25 28.01.2005 19:07
String suchen und tauschen PHP Tipps 2005 13 08.01.2005 22:00
[Erledigt] String mit Leerzeichen auffüllen HTML, Usability und Barrierefreiheit 2 27.10.2004 18:47
bekomme string nicht in mysql-tabelle PHP Tipps 2004 6 26.07.2004 11:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
\\n zeichenfolge, php nicht erlaubte zeichen ewrsetzen, \n zeichenfolge\

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:26 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.