You are not logged in.

  • Login

1

Friday, April 17th 2009, 6:19pm

str_replace und include kombinieren

Hallo,

ich möchte str_replace und include gerne kombinieren, funktioniert aber nicht so ganz..googlen hat auch noch zu keinen ergebnissen geführt.
so ungefähr

PHP Quellcode

1
2
3
4
5
$1 = "test";
$2 = include("neu.php");
$3 = "alt.php";
 
echo str_replace($1,$2,$3);


Also Inhalt der Variable $1 in der alt.php soll praktisch durch den inhalt von neu.php ersetzt werden, ich weiss nicht wie ich das anstellen soll.
Ich hoffe Ihr versteht was ich genau meine.

2

Friday, April 17th 2009, 6:40pm

Hallo,

hm :|

Include ist keine Funktion:

Quoted

include 'test.php';


Beim include passiert somit nichts anderes als, dass der Inhalt der Datei in die aktuelle Datei eingesetzt wird.
Somit geht das nicht.

du könntest es sorum machen:

PHP Quellcode

1
2
3
4
5
6
7
$1 = "test";
$2 = "neu.php";
$3 = "alt.php";
 
$4 = str_replace($1,$2,$3);
 
include $4;


Ist schon eigenartig. Was hast du denn vor?
Vielleicht bist du mit einer if oder switch Konstruktion besser bedient.

4

Friday, April 17th 2009, 7:21pm

@vince:
Ich bin ein eigenes CMS am basteln, nein möchte nicht Smarty benutzen, falls der satz wieder auftaucht;):)
Es sollen im Haupttemplate, die Platzhalter ersetzt werden, wie zB {title} usw. .. genau d0nUt, das hatten wir gemacht in diesem Thema, aber möchte jetzt das ganze erweitern..
Ich möchte den Inhalt natürlich bestimmen können, daher möchte ich den platzhalter {pages} praktisch durch einen include direkt ersetzen, für funktionen, nicht nur für inhalt.
Oder kann ich das ganze anders lösen, dass ich beispielsweise im template zwischen <body> und </body> ein php-skript einfüge, über einen code, ohne direkt php-code in das template selber einzubauen? mit php code wäre es ja kein template mehr..

5

Friday, April 17th 2009, 7:47pm

Wenn du das selbe wie file_get_contents erreichen willst, nur dass dabei auch geparst wird, kannst das hier verwenden: Lies dir am besten noch die Doku zu den Output-Buffering Funktionen durch.

alt:

PHP Quellcode

1
$template = file_get_contents("templates/main.tpl");


neu:

PHP Quellcode

1
2
3
4
ob_start();
include("templates/main.tpl");
$template = ob_get_contents();
ob_end_clean();

6

Friday, April 17th 2009, 8:29pm

ohne direkt php-code in das template selber einzubauen? mit php code wäre es ja kein template mehr..


Ich glaube was in deinem Kopf vorgeht ist leider unmöglich, aber normal (nicht böse gemeint) :)

Es ist kein Problem in einem Template php Code unter zu bringen. Der Sinn eines Templates ist es das Design und die Logik zu trennen.


Quoted

hab wir das nicht schon hier geklärt: Ersetzen eines Platzhalters ?

Es kam mir bekannt vor, d0nut vergisst nichts :D

7

Friday, April 17th 2009, 8:52pm

hm ich dachte es wäre so, dass es der sinn ist von einem template, php und html code zu trennen.
aber wenn das so ist, ist ja alles super.
Danke für die hilfe dann.
@d0nUt: Wo finde ich die Dokumentation? Finde unter Google nur etwas anderes. Danke im voraus nocheinmal:)

8

Friday, April 17th 2009, 9:32pm

Dokumentationen findest du immer unter php.net/funktionsname wobei funktionsname der Name der Funktion ist.

Also :
php.net/ob_start
php.net/ob_get_contents
php.net/ob_end_clean

Quoted

hm ich dachte es wäre so, dass es der sinn ist von einem template, php und html code zu trennen.

Eigentlich schon, aber das lässt sich nicht richtig in php umsetzen.
Das maximalste wäre das MVC Konzept.


Vll. guckst du dir auch mal fertige template engines an.
http://de.wikipedia.org/wiki/Template_Engine

9

Saturday, April 18th 2009, 12:00pm

hallo

Dokumentationen findest du immer unter php.net/funktionsname wobei funktionsname der Name der Funktion ist.

Also :
php.net/ob_start
php.net/ob_get_contents
php.net/ob_end_clean


Aso, das ist mit Dokumentation gemeint, das mit php.net kenne ich natürlch, stelle mir unter Dokumentation etwas anders vor.


Quoted


Eigentlich schon, aber das lässt sich nicht richtig in php umsetzen.
Das maximalste wäre das MVC Konzept.


Vll. guckst du dir auch mal fertige template engines an.
http://de.wikipedia.org/wiki/Template_Engine


Okay mache ich, danke;):)

10

Saturday, April 18th 2009, 12:12pm

Habe mir das MVC Konzept mal durchgelesen, finde ich interessant, aber von Javascript habe ich überhaupt keine Ahnung:)

11

Saturday, April 18th 2009, 12:32pm

Habe mir das MVC Konzept mal durchgelesen, finde ich interessant, aber von Javascript habe ich überhaupt keine Ahnung:)


Meinst du diesen Artikel?
http://de.wikipedia.org/wiki/Model_View_Controller

Das unten ist nur ein Beispiel.
Das ist ein theoretisches Konzept, welches du überall anwenden kannst.

Für PHP existieren auch schon Frameworks, wo genau das umgesetzt wurde:
z.b
http://cakephp.org/
http://framework.zend.com/
...

Similar threads

Social bookmarks