php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.08.2005, 20:00  
Benutzer
 
Registriert seit: 13.10.2004
Beiträge: 73
horvath-media
Standard Wie mache ich Platzhalter?

Hallo,

und zwar hab ich folgendes Problem:

Ich lese momentan aus einer Datenbank einen Text aus!

In diesem Text müssen Usernamen etc. stehen!

Wie kann ich am besten und am einfachsten Platzhalter machen?

Zitat:
Hallo $userdata[username],

etc.
So steht der Text in der Datenbank...
horvath-media ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 17.08.2005, 20:05  
Erfahrener Benutzer
 
Registriert seit: 11.08.2005
Beiträge: 206
ZiMD
Standard

PHP-Code:
<?php
$a 
Hallo {username};
str_replace("{username}""username den du irentwo herbekommst"$a);
?>
ZiMD ist offline  
Alt 17.08.2005, 20:17  
Benutzer
 
Registriert seit: 13.10.2004
Beiträge: 73
horvath-media
Standard

Hier nochmal der Code:

Code:
$a=mysql_query("SELECT id,username FROM rp_preller WHERE ident='$_GET[ident]'");
$aa=mysql_fetch_array($a);
$zeit=strftime("%d.%m.%y",time());
$text=mysql_fetch_array(mysql_query("SELECT text FROM rp_texte WHERE id='1'"));
$text=nl2br($text[text]);

$text=eregi_replace("$aa[id]","$aa[id]","$text");
echo"$text";
horvath-media ist offline  
Alt 17.08.2005, 21:01  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von ZiMD
PHP-Code:
<?php
$a 
Hallo {username};
str_replace("{username}""username den du irentwo herbekommst"$a);
?>
der code is jetzt net dein ernst, oder?

1. Hast du anführungszeichen vergessenm zweitens hast du vergessen, den Rückgabewert von str_replace abzuspeichern und drittens ist der text vollkommen falsch geschrieben.

@horvath-media
Leider hast du uns nicht mitgeteilt, was überhaupt in welcher tabelle steht. Deshalb ist es schwer, dir direkt zu Helfen.

Ich würde folgendes vorschlagen:

eine Tabelle Texte

Code:
+--+----+
|ID|Text|
+--+----+
aus dieser liest du dann den gewünschten text heraus. Ich gehe davon aus, dass die id bekannt ist (wie will man sonst an den text rankommen?)
PHP-Code:
<?php
$sql 
"SELECT Text FROM Texte WHERE ID = '".$id."';";
$result mysql_query($sql);
$row mysql_fetch_assoc($result);
$text $row["Text"];
?>
nun ersetzt du die Platzhalter.
Wie diese Aussehen, ist dir Überlassen.
Denkbar ist z.b. diese mit { und } einzuklammer, weil diese beiden zeichen im text selten vorkommen. auch zwei %-zeichen wären gut geeignet.
Der folgende Code ist vielleicht nicht der optimalste, aber ich nehme ihn, weil er relativ leicht zu verstehen und zu erweitern ist.
PHP-Code:
<?php
$sql 
"SELECT Text FROM Texte WHERE ID = '".$id."';";
$result mysql_query($sql);
$row mysql_fetch_assoc($result);
$text $row["Text"];

//Ein Array mit den Wörtern, die ersetzt werden müssen. Die Variablen $username und $useremail musst du natürlich vorher auslesen.
$replace = array();
$replace["{name}"] = $username;
$replace["{email}"] = $useremail;
//str_replace, welches ich verwenden möchte, verlangt suchwörter und ersätze in zwei verschiedenen arrays. Man kann beide auch direkt getrennt definieren, nur ist es so leichter zu erkennen, welche paare zusammengehören.
$search array_keys($replace);
//nun folgt das eigentliche einsetzen
$text str_replace($search,$replace,$text);
//zur probe wird der Text ausgegeben
echo $text;
?>
hab den quellcode weitestgehend kommentiert, so solltest du keine probleme beim nachvollziehen haben
Buhmann ist offline  
Alt 17.08.2005, 21:47  
Erfahrener Benutzer
 
Registriert seit: 11.08.2005
Beiträge: 206
ZiMD
Standard

Zitat:
Zitat von Buhmann
Zitat:
Zitat von ZiMD
PHP-Code:
<?php
$a 
Hallo {username};
str_replace("{username}""username den du irentwo herbekommst"$a);
?>
der code is jetzt net dein ernst, oder?

1. Hast du anführungszeichen vergessenm zweitens hast du vergessen, den Rückgabewert von str_replace abzuspeichern und drittens ist der text vollkommen falsch geschrieben.
tja drogen...

PHP-Code:
<?php
$a 
'Hallo {username}';
$a str_replace('{username}''username den du irendwo herbekommst'$a);
echo 
"$a";
?>
ZiMD ist offline  
Alt 17.08.2005, 23:03  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Zitat:
Zitat von horvath-media
Code:
$a=mysql_query("SELECT id,username FROM rp_preller WHERE ident='$_GET[ident]'");
$aa=mysql_fetch_array($a);
$zeit=strftime("%d.%m.%y",time());
$text=mysql_fetch_array(mysql_query("SELECT text FROM rp_texte WHERE id='1'"));
$text=nl2br($text[text]);

$text=eregi_replace("$aa[id]","$aa[id]","$text");
echo"$text";
1. http://php-faq.de/q/q-sql-injection.html
2. error_reporting auf E_ALL setzen und dann eben Array-Indizes in Anführungszeichen setzen, da du ja sicher keine Konstanten ident, text und id meinst;
3. Anstatt mysql_fetch_array() reicht hier ein mysql_fetch_assoc();
4. http://php-faq.de/q/q-regexp-ereg.html

Und zum Rest wurde ja bereits genug geschrieben. Eines noch: Wenn du als Delimiter für die Template-Variable geschweifte Klammern oder das Prozentzeichen nimmst, dann musst du dieses auch jeweils entschärfen, wenn es im Text vorkommt - z.B. durch Verdoppelung oder so.

Vielleicht auch interessant für dich sprintf()

Basti
Basti 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
Aufklappmenu geht nur mit Platzhalter? Stemmi HTML, Usability und Barrierefreiheit 4 08.11.2007 17:34
gibt es einen platzhalter? notyyy Off-Topic Diskussionen 5 02.11.2007 15:02
Platzhalter "*" möglich? adlerr2000 HTML, Usability und Barrierefreiheit 2 23.05.2006 21:30
datumsabfrage platzhalter Datenbanken 2 12.02.2006 10:43
Platzhalter im Template Zero.exe PHP Tipps 2005-2 3 30.08.2005 12:09
Platzhalter im WHERE Feld JonathanArcher Datenbanken 12 12.08.2005 22:45
Platzhalter bei IF Abfragen PHP Tipps 2005-2 2 03.07.2005 15:19
Platzhalter gesucht PHP Tipps 2005 5 19.03.2005 16:06
Platzhalter in Variablen PHP Tipps 2005 3 16.02.2005 16:56
Platzhalter in der Variable? PHP Tipps 2005 16 10.02.2005 20:39
platzhalter in query ersetzen flyingeagle Datenbanken 4 12.01.2005 10:40
replace-Funktion für Platzhalter/ php-Code in html PHP Tipps 2004-2 1 11.12.2004 19:40
file_exists mit Platzhalter? RoDa PHP Tipps 2004 24 02.11.2004 12:55
Platzhalter juhuwoorps Datenbanken 4 07.09.2004 11:37
Daten in Platzhalter laden PHP Tipps 2004 0 28.06.2004 12:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php platzhalter, http://www.php.de/php-tipps-2005-2/29348-wie-mache-ich-platzhalter.html, php replace platzhalter, html platzhalter, php replace wildcard, platzhalter html, platzhalter php, platzhalter in html, php platzhalter ersetzen, wie mache ich einen platzhalter, php platzhalter für mail, html img platzhalter, unbestimmter platzhalter php, php platzhalter zählen, platzhalter replace php, mail php platzhalter, php {platzhalter}, platzhalter in php, php platzhalter für email, sql replace platzhalter

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