php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.06.2004, 11:32  
Erfahrener Benutzer
 
Registriert seit: 11.05.2004
Beiträge: 498
TheSkaterFriend
TheSkaterFriend eine Nachricht über ICQ schicken
Standard Funktionen Erklärung

Hallo mal wieder,

Da ich vor kurzem vieles über die Funktionen wie, preg_replace, ereg_replace, str_replace, eregi_repace usw. gehört hab, wollte ich mal wissen wie diese ganzen Funktionen aufgebaut sind. Ich weiss das es viel arbeit ist die jetzt alle zu beschreiben, aber ich wäre euch drotzdem sehr dankbar. Natürlich dürft ihr nicht denken, dass ich Faul bin und hier nur Fragen stelle. Aber im Manual hab ich nicht sonderlich viel daraus gewinnen können, dass heisst ich hab das ganze nicht verstanden.

str_replace habe ich schon verwendet und zwar für BB-Codes und Smilies. Ich denke str_replace ist einer der leichteren Funktionen die ich wissen will.

Danke schon mal im vorhinein.

Mit freundlichen Grüßen

TheSkaterFriend aka. Patrick F.
TheSkaterFriend ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.06.2004, 11:39  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

http://de.php.net/manual/de/function.str-replace.php
http://de.php.net/manual/de/ref.pcre.php

Was ist dort nicht zu verstehen?
Guradia ist offline  
Alt 11.06.2004, 11:45  
Erfahrener Benutzer
 
Benutzerbild von JanM
 
Registriert seit: 22.12.2003
Beiträge: 788
PHP-Kenntnisse:
Fortgeschritten
JanM ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
$text = str_replace(":D","<img src=\"img/grins.gif\" width=\"15\" height=\"15\" border=\"0\">",$text);
Fangen wir mal an :

ok ganz am anfang steht $text
$text ist die Varaiable ausder "replaced" wird.

Dann kommt:
Code:
str_replace(":D","<img src=\"img/grins.gif\" width=\"15\" height=\"15\" border=\"0\">",
nach dem str_replace( kommt "" aus diesem "" wird dann <img src=\"img/grins.gif\" width=\"15\" height=\"15\" border=\"0\">".
Anschließend kommt dann wieder (am ende) $text
das $text steht am ende weil in diese Varaible wieder der vom replace editierte text reingeschrieben wird

Ich hoffe du hast das verstanden

EDIT
man Guradia du warst wieder schneller :>
__________________

Statistik
JanM ist offline  
Alt 11.06.2004, 11:55  
Erfahrener Benutzer
 
Registriert seit: 11.05.2004
Beiträge: 498
TheSkaterFriend
TheSkaterFriend eine Nachricht über ICQ schicken
Standard

Danke, wie gesagt mit str_replace kenn ich mich eh schon so halbwegs aus. Die anderen würd ich auch gerne wissen. Dort verstehe ich das ganze mit der Ersätzung und so nicht. Wäre nett wenn mir das auch wer erklären könnte.

Danke

Tschau

TSF
TheSkaterFriend ist offline  
Alt 11.06.2004, 11:58  
Erfahrener Benutzer
 
Benutzerbild von JanM
 
Registriert seit: 22.12.2003
Beiträge: 788
PHP-Kenntnisse:
Fortgeschritten
JanM ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
$text = str_replace(":D","<img src=\"img/grins.gif\" width=\"15\" height=\"15\" border=\"0\">",$text);
aus dem
Code:
:D
wird der smilie (code)
Code:
","<img src=\"img/grins.gif\" width=\"15\" height=\"15\" border=\"0\">
du editierst also das zu deinem smilie und machst aus dem
Code:
","<img src=\"img/grins.gif\" width=\"15\" height=\"15\" border=\"0\">
den quellcode zu deinem Smilie also wo er liegt welche größe etc.

EDIT
ansonsten wurde ich sagen wie er schon gesagt hat
http://de.php.net/manual/de/function.str-replace.php
http://de.php.net/manual/de/ref.pcre.php
__________________

Statistik
JanM ist offline  
Alt 11.06.2004, 12:03  
Erfahrener Benutzer
 
Registriert seit: 11.05.2004
Beiträge: 498
TheSkaterFriend
TheSkaterFriend eine Nachricht über ICQ schicken
Standard

Wie ich schon bei meinem 1. Post geschrieben habe. Will ich ereg_replace, eregi_replace, preg_replace ect. wissen. Weil die für mich am schwersten zu verstehen sind. Danke.

Tschau

TSF
TheSkaterFriend ist offline  
Alt 11.06.2004, 12:05  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Und wie ich schon schrieb: Was ist da nicht zu verstehen?
Guradia ist offline  
Alt 11.06.2004, 12:07  
Erfahrener Benutzer
 
Benutzerbild von JanM
 
Registriert seit: 22.12.2003
Beiträge: 788
PHP-Kenntnisse:
Fortgeschritten
JanM ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Guradia
Und wie ich schon schrieb: Was ist da nicht zu verstehen?
jo :>
verstehe ich auch nich
__________________

Statistik
JanM ist offline  
Alt 11.06.2004, 12:26  
Erfahrener Benutzer
 
Registriert seit: 11.05.2004
Beiträge: 498
TheSkaterFriend
TheSkaterFriend eine Nachricht über ICQ schicken
Standard

Zitat:
Diese Funktion durchsucht Zeichenkette nach Übereinstimmungen mit Suchmuster und ersetzt dann den übereinstimmenden Text durch Ersatz.

Zurückgegeben wird die geänderte Zeichenkette, was auch bedeuten könnte, dass die ursprüngliche Zeichenkette zurückgegeben wird, wenn es keine zu ersetzenden Übereinstimmungen gibt.

Wenn Suchmuster eingeklammerte Teilzeichenketten enthält, darf Ersatz Teilzeichenketten der Form \\Ziffer enthalten, die dann durch die Ziffer'ste Teilzeichenkette ersetzt werden. \\0 erzeugt den gesamten Inhalt der durchsuchten Zeichenkette. Bis zu neun Teilzeichenketten dürfen verwendet werden. Klammern dürfen geschachtelt werden und werden in diesem Fall anhand der öffnenden Klammern gezählt.

Wenn in Zeichenkette keine Übereinstimmungen gefunden werden, wird Zeichenkette unverändert zurückgegeben.

Ich verstehe nicht was es mit den \\ und so auf sich hat.


Zitat:
Der folgende Code-Schnipsel gibt zum Beispiel dreimal "Das war ein Test" aus:

Beispiel 1. ereg_replace() Beispiel

<?php

$string = "Das ist ein Test";
echo ereg_replace(" ist", " war", $string);
echo ereg_replace("( )ist", "\\1war", $string);
echo ereg_replace("(( )ist)", "\\2war", $string);

?>



Folgendes ist zu beachten: Wenn Sie als Ersatz einen ganzzahligen Wert verwenden, bekommen sie vielleicht nicht das erwartete Ergebnis. Das liegt daran, dass ereg_replace() die Zahl als Ordinalwert eines Zeichens betrachtet und dieses verwendet. Zum Beispiel:

Beispiel 2. ereg_replace() Beispiel

<?php
/* Dieses funktioniert nicht wie erwartet. */
$zahl = 4;
$zeichenkette = "Diese Zeichenkette hat vier Wörter.";
$zeichenkette = ereg_replace('vier', $zahl, $zeichenkette);
echo $zeichenkette; /* Ausgabe: 'Diese Zeichenkette hat Wörter.' */

/* Dieses funktioniert. */
$zahl = '4';
$zeichenkette = "Diese Zeichenkette hat vier Wörter.";
$zeichenkette = ereg_replace('vier', $zahl, $zeichenkette);
echo $zeichenkette; /* Output: 'Diese Zeichenkette hat 4 Wörter.' */
?>



Beispiel 3. Ersetzen von URLs durch Links

<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);
?>
An den Beispielen kann ich auch nicht gerade was schlau es daraus gewinnen. Besonders beim 3. Beispiel.

preg_replace

Zitat:
Durchsucht Zeichenkette nach Übereinstimmungen mit Suchmuster und ersetzt sie mit Ersatz. Falls Limit angegeben wurde, werden nur Limit Übereinstimmungen ersetzt. Wird Limit weggelassen oder ist es -1, dann werden alle Übereinstimmungen ersetzt.

Ersatz darf Referenzen in der Form \\n oder (seit PHP 4.0.4) $n enthalten, wobei Letztere vorzuziehen ist. Jede dieser Referenzen wird mit dem Text ersetzt, der vom n-ten eingeklammerten Suchmuster erfasst wurde. n kann einen Wert von 0 bis 99 haben. \\0 oder $0 beziehen sich auf den Text, der mit dem kompletten Suchmuster übereinstimmt. Um die Nummer des erfassenden Teil-Suchmusters zu erhalten, werden öffnende Klammern mit 1 beginnend von links nach rechts gezählt.

Wenn Sie mit einer Ersetzung arbeiten wollen, in der auf eine Rückreferenzierung direkt eine weitere Zahl folgt (d.h., direkt nach der Übereinstimmmung mit einem Suchmuster soll eine Zahl kommen), können Sie für Ihre Rückreferenzierung nicht die Schreibweise \\1 verwenden. So würde z.B. \\11 die Funktion preg_replace() verwirren, weil sie nicht weiß, ob Sie die Rückreferenzierung \\1 gefolgt von der Zahl 1 wollen oder nur die Rückreferenzierung \\11. In diesem Fall ist die Lösung, \${1}1 zu verwenden. Damit wird eine isolierte Rückreferenzierung $1 erzeugt und die 1 bleibt ein Zahlensymbol.
Hier wieder $ und \\ keine ahnung. Das verwirrente sind dann die Beispiele.

Zitat:
Beispiel 1. Die Verwendung von Rückreferenzierungen mit darauf folgenden numerischen Literalen

<?php
$zeichenkette = "15. April 2003";
$suchmuster = "/(\d+)\. (\w+) (\d+)/i";
$ersetzung = "\${2}1,\$3";
echo preg_replace($suchmuster, $ersetzung, $zeichenkette);
?>

Dieses Beispiel erzeugt folgende Ausgabe:

April1,2003
Dieses Beispiel verstehe ich, da es mit Arrays ist und einfach zu verstehen ist.

Zitat:
Beispiel 2. Die Verwendung von preg_replace() mit indizierten Arrays

<?php
$zeichenkette = "Der schnelle braune Fuchs sprang über den faulen Hund.";

$suchmuster[0] = "/schnelle/";
$suchmuster[1] = "/braune/";
$suchmuster[2] = "/Fuchs/";

$ersetzungen[2] = "Bär";
$ersetzungen[1] = "schwarze";
$ersetzungen[0] = "langsame";

echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);
?>

Ausgabe:

Der Bär schwarze langsame sprang über den faulen Hund.


Wenn wir Suchmuster und Ersetzungen mit ksort() sortieren, sollten wir bekommen was wir wollten.

<?php

ksort($suchmuster);
ksort($ersetzungen);

echo preg_replace($suchmuster, $ersetzungen, $zeichenkette);

?>

Ausgabe:

Der langsame schwarze Bär sprang über den faulen Hund.
Das sind 2 Funktionen die ich nicht verstehe. Vielleicht haltet ihr mich für dumm, wer weiss vielleicht bin ich's ja, auf jeden fall brauch ich hilfe. Danke.

Tschau

TSF
TheSkaterFriend ist offline  
Alt 11.06.2004, 12:35  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von TheSkaterFriend
Ich verstehe nicht was es mit den \\ und so auf sich hat.
\ leitet ein Escape-Sequenz im Pattern ein. Für Befehle oder Sonderzeichen
Da in ' und "-Strings ein \ ebenfalls schon ein Escape ist, muss \\ geschrieben werden.

\123 resutliert in einer Oktalumesetzun (*?!* .. k/a brauch ich nicht ^^)
\1 könnte aber auch für eine BackReference gehalten werden.

Letzteres ist interessant und sollte uach gleich anders geschrieben werden:

im Such-Pattern hast du z.B. /<a href="(.*)">/
Über $1 bekommst du in diesem Beispiel exakt die gefundene URL. Und kannst sie im Ersetzen-Pattern wieder einstzen.
$1 bis $99 kann es geben. Da diese Zahlen mit \1 bis \99 durcheinander geraten könnten, soll nur noch die $#-Variante genutzt werden.

Evtl. erklären sich andere Fragen damit direkt ?!
Guradia 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
Templatesystem mit Funktionen und Variablen drin? BartTheDevil89 PHP Tipps 2008 6 01.07.2008 09:32
welche funktionen deaktivieren brian johnson PHP-Fortgeschrittene 4 15.11.2007 09:25
Klassen und externe Funktionen ? ssm PHP-Fortgeschrittene 17 18.07.2007 11:59
eine Variable für alle Funktionen definieren Wing PHP Tipps 2007 16 24.06.2007 21:02
Anweisungen, Befehlen und Funktionen guenterfrosch PHP Tipps 2006 7 08.10.2006 13:37
Funktionen überprüfen und Grafik Funktionen hans.karl2 PHP Tipps 2006 10 31.07.2006 20:08
Funktionen in Funktionen - ist das gut? Schneckenkind PHP Tipps 2006 23 10.06.2006 13:39
funktionen trinity PHP Tipps 2006 4 27.05.2006 13:21
Problem mit Global Scope von Funktionen WickedImp PHP-Fortgeschrittene 13 16.05.2006 00:30
Klassen, Funktionen und Session Fatal Error PHP Tipps 2006 1 15.03.2006 19:05
Globale Variabeln in Funktionen finerip PHP Tipps 2007 3 28.11.2005 16:00
Partnerbörse mit individuellen Funktionen gegen Bezahlung Beitragsarchiv 10 23.03.2005 16:27
Eure Ideen sind gefragt: eigene Funktionen verwalten PHP-Fortgeschrittene 12 17.01.2005 15:00
[Erledigt] mysql funktionen nicht verfügbar. PHP-Fortgeschrittene 7 07.11.2004 10:38
Funktionen auslagern und auf variablen zugreifen Crypi PHP Tipps 2004 3 14.10.2004 13:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
funktionen erklärung, erklärung funktionen, php rückreferenzierung, erklärung php funktionen, standardfunktionen erklärung, php suchmuster erklärung, preg_replace() mit indizierten arrays umlaute

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