php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.09.2006, 13:49  
Benutzer
 
Registriert seit: 28.08.2006
Beiträge: 44
#EFEFEF
Standard str_replace() nur bei einzeiligem?

Hallo allerseits,

ich habe ein Problem, ich mache ein kleines Templatesytem für ein Programm von mir.

Ich öffne ein Template mit fopen usw. und lasse dann mit Str_replace einzelne Sachen ersetzen. Das klappt auch wunderbar, unter eine Bedingung:
Das Template darf nur einzeilig sein, sobald mehr als eine Zeile verwendet wird gibt es Probleme.
Kann mir jemand sagen woran das liegt und wie ich das vermeiden kann?

Ich habe unter der Boardsuche nichts gefunden .

mfg hellgrau.
#EFEFEF ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.09.2006, 14:05  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Was für Probleme gibt es denn? Woher sollen wir denn wissen was passiert?
Gehts garnicht, teilweise, kommen Fehlermeldungen?

Vlt. nen Codesnippet? Wir brauchen wesentlich mehr Info um helfen zu können.
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist offline  
Alt 30.09.2006, 17:01  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

Wie Razor schon sagt: Wenn du vernünftige Hilfe willst, werden deutlich mehr Infos gebraucht.

Aber mal ins Blaue geschrieben:
Ein String ist ein String, Zeilenumbruch hin oder her.
Würde mal vermuten, du liest nur eine Zeile aus deiner Datei aus, file_get_contents() würde dem Abhilfe schaffen.
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
Alt 30.09.2006, 17:20  
Benutzer
 
Registriert seit: 28.08.2006
Beiträge: 44
#EFEFEF
Standard

Also, die Prozedur zum öffnen der Datei mit dem Template lautet wie folgt:

PHP-Code:
function loadtpl ($arg_1)
{
    
    
$url=$arg_1;
    
ob_start ();
    
$cont file_get_contents() ;
    
ob_end_clean ();
    
$fp fopen ($url'r');
    while (!
feof ($fp))
    
$temp fgets ($fp);
    
fclose ($fp);
    return 
$temp;

und der Code zum ersetzen einer Variable und zum ausgeben dann so:

PHP-Code:
$template2 loadtpl ("templates/index.tpl");
    
$template2 str_replace ('{title}'$sitename$template2);
    
$template2 str_replace ('{style_body}'$style_body$template2);
    
$template2 str_replace ('{header}'$header$template2);
    
$template2 str_replace ('{topmenu}'$topmen$template2);
    
$template2 str_replace ('{imageline}'$imageline$template2);
    
$template2 str_replace ('{structur}'$structur$template2);
echo 
$template2
#EFEFEF ist offline  
Alt 30.09.2006, 18:07  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

:shoked:
Werf die Function da sofort in die Mülltonne!
Das ist der größte Schwachsinn den es gibt, du überschreibst Zeile für Zeile die Variable mit der vorangegangnen.

$template2 = file_get_contents('templates/index.tpl');
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
Alt 30.09.2006, 21:22  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Whow, das ist echt hart!

Aber besser noch einfach eine der vielen Template-Engines benutzen, die es schon gibt. Mit einfachen Ersetzungen kommst du nämlich nicht weit - Bedingungen und Schleifen kannst du derart nicht umsetzen.

Basti
Basti ist offline  
Alt 30.09.2006, 21:31  
Benutzer
 
Registriert seit: 28.08.2006
Beiträge: 44
#EFEFEF
Standard

Ja haste schon recht ...

aber danke für die Hilfe, andys Lösung hat geklappt... bin noch nicht so erfahren ^^
#EFEFEF ist offline  
Alt 04.11.2008, 11:56  
Benutzer
 
Registriert seit: 28.08.2006
Beiträge: 44
#EFEFEF
Standard

Wow ... ich muss mal sagen.
Erstaunlich was für Fortschritte ich seid dem gemach habe =)
#EFEFEF ist offline  
Alt 04.11.2008, 12:12  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Wenn Du jetzt noch Deine Rechtschreibung auf die Reihe bekämst...
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 05.11.2008, 09:46  
Benutzer
 
Registriert seit: 28.08.2006
Beiträge: 44
#EFEFEF
Standard

Mit "Seit" und "Seid" Probleme zu haben, ist nichts wofür man sich schämen müsste...
Ein t zu vergessen, schon eher...^^

Aber Herr Über-Mod, welchen Didaktischen Wert hatte es, dass sie das jetzt hier hinschrieben?
#EFEFEF 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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
str_replace file_get_contents, str_replace ausschließlich, str_replace, str_replace bedingung, str_replace nur einzelne ersetzen, str_replace basti, mrstr_replace, php loadtpl, http://www.php.de/php-tipps-2006/42317-str_replace-nur-bei-einzeiligem.html, str_replace in tpl

Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 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.