php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.03.2005, 19:37  
Gast
 
Beiträge: n/a
Standard $1 als String weitergeben verwenden in preg_replace(.)

- Warum kommt bei echo $img ."\n"; => $1 ABER der Rückgabewert ist der Wert, der in $1 steht?
- Wie kann ich $img verwenden z.B. wenn ich vorher abfragen will, ob die Datei existiert, "$1" existiert nun mal nie!

Code:
if(file_exists($img)){
		...
}
- Warum muss ich get_img_link("$1") oder get_img_link('$1') schreiben und nicht get_img_link($1)?

Code:
$template = "1 %%IMG_aaaa.jpg%% 2 %%IMG_bbbbb.jpg%% 3";
$template = preg_replace("/%%IMG_(.+?)%%/ims", get_img_link($1), $template);


function get_img_link($img){
	echo $img ."\n"; // => $1
	
	return	'[img]'.$img.'[/img]';
}
	
echo $template;
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.03.2005, 20:27  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard Re: $1 als String weitergeben verwenden in preg_replace(.)

Zitat:
Zitat von atreidis
- Warum kommt bei echo $img ."\n"; => $1 ABER der Rückgabewert ist der Wert, der in $1 steht?
Weil Du dein Script nicht verstehst. Bei Dir liegt ein essentielles Missverständnis darüber vor, wer was an wen übergibt.

Zitat:
Zitat von atreidis
- Wie kann ich $img verwenden z.B. wenn ich vorher abfragen will, ob die Datei existiert, "$1" existiert nun mal nie!
Entweder über den Modifier e oder vorzugsweise über preg_replace_callback().

Zitat:
Zitat von atreidis
- Warum muss ich get_img_link("$1") oder get_img_link('$1') schreiben und nicht get_img_link($1)?
Weil $1 an dieser Stelle nichts weiter ist als ein ungültiger Variablenname.


Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum.

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

moved to PHP - Anfänger
__________________
mod = master of disaster
Waq ist offline  
Alt 27.03.2005, 14:48  
Gast
 
Beiträge: n/a
Standard Re: $1 als String weitergeben verwenden in preg_replace(.)

Erstmal entschuldigung, dass ich im falschen Forum gepostet habe. Eigentlich würde ich mich programmiertechnisch gesehen schon als Fortgeschrittenen sehen, allerdings komme ich mehr aus der C(++)/Java-Ecke und mache erst seite kurzer Zeit Erfahrung in und mit PHP. Musste feststellen, dass da einiges leichter geht...

Mit der Funktion "reg_replace_callback(.)" funktioniert's genauso wie ich will! Trotzdem wäre es nett, wenn man mir bei meiner Verständnisfrage auf die Sprünge helfen könnte!?

Zitat:
Zitat von Waq
Weil Du dein Script nicht verstehst. Bei Dir liegt ein essentielles Missverständnis darüber vor, wer was an wen übergibt.
Ja, ich verstehe es wirklich nicht, welche Funktion was genau an welche andere übergibt. Deshalb habe ich auch nachgefragt. Im Manual steht bei "ereg_replace(string Suchmuster, string Ersatz, string Zeichenkette)): Diese Funktion durchsucht Zeichenkette nach Übereinstimmungen mit Suchmuster und ersetzt dann den übereinstimmenden Text durch Ersatz."

Das verstehe ich so:

[code]
preg_replace("/%%IMG_(.+?)%%/ims", get("$1"), $template);
[code]

In dem String $template, wird nach %%IMG_(.+?)%% gesucht, sobald es gefunden wird, wird der Teil zwischen "%%IMG_" und "%%" steht in die Variable $1 geschrieben. Mit dieser Variable will ich dann eigentlich die Funktion "get_img_link(.)" aufrufen. Jetzt kommt aber mein Denkproblem:

An dieser Stelle steht keine Variable sondern "$1" als String, später wird dieser String aber dann doch noch zur Variable. Wie kann so etwas gehen? Ich würde verstehen wenn man get($1) aufrufen könnte oder ""$1"" nie als Variable ausgewertet werden würde, aber "beides ein bisschen" verstehe ich nicht.


Zitat:
Zitat von Waq
Weil $1 an dieser Stelle nichts weiter ist als ein ungültiger Variablenname.
Ja, das habe ich auch schon gemerkt, an welcher Stelle wird denn nun aus einem String (der eine Variable ist) eine (un)gültigem Variable?
 
Alt 27.03.2005, 15:21  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard Re: $1 als String weitergeben verwenden in preg_replace(.)

Zitat:
Zitat von atreidis
Im Manual steht bei "ereg_replace(string Suchmuster, string Ersatz, string Zeichenkette))
[..]
An dieser Stelle steht keine Variable sondern "$1" als String, später wird dieser String aber dann doch noch zur Variable. Wie kann so etwas gehen?
Der String "$1" wird an die Funktion übergeben. Die Funktion liefert einen String zurück. Dieser String wird als Parameter Ersatz an preg_replace() übergeben, und preg_replace() wertet $1 als Backreference aus und ersetzt es durch den gefundenen Inhalt.


Zitat:
Zitat von atreidis
Ich würde verstehen wenn man get($1) aufrufen könnte oder ""$1"" nie als Variable ausgewertet werden würde, aber "beides ein bisschen" verstehe ich nicht.
$1 ist keine Variable, auch nicht ein bisschen, sondern nur eine Backreference für die Regulären Ausdrücke.
__________________
mod = master of disaster
Waq ist offline  
Alt 27.03.2005, 15:24  
Gast
 
Beiträge: n/a
Standard Re: $1 als String weitergeben verwenden in preg_replace(.)

Zitat:
Zitat von Waq
Der String "$1" wird an die Funktion übergeben. Die Funktion liefert einen String zurück. Dieser String wird als Parameter Ersatz an preg_replace() übergeben, und preg_replace() wertet $1 als Backreference aus und ersetzt es durch den gefundenen Inhalt.
Danke! Ich glaube ich hab's jetzt verstanden!
 
 


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
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
Problem Checkboxen - string mit Zahlen die gecheckten setzen Cyberbob_at_tot PHP Tipps 2005-2 5 11.06.2005 11:36
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
php $1, preg_replace $1, $1 php, php preg_replace $1, preg_replace, http://www.php.de/php-tipps-2005/20222-1-als-string-weitergeben-verwenden-preg_replace.html, $1 in php, php \$1\, preg_replace php, preg_replace \$1\, php - $1, preg_replace php $1, php what is \'$1\', get $1 from preg replace, php preg_replace variable in zeichenkette, php preg_replace $1 funktion, preg_replace - $1, preg_replace(\'/. ?({. }). /\',\'$1\', php auf $1 preg_replace zugreifen, preg replace $1

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