Portal > Foren > PHP > PHP-Programmierung > Problem mit includen
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 04.12.2005, 16:39 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 12.09.2005
Beiträge: 15
Standard Problem mit includen

Hi hab ein kleines problem bei meinem template system :

template.php

PHP-Code:
<?php

function template($datei="index.htm")
{
$search    = array("{titel}",'{include ="content"}');
$replace   = array("Sliders HP","<php include ('content.php'); ?>");
$csearch   count($search);
$creplace  count($replace);


$f        file_get_contents($datei);
if(
$csearch == $creplace)
{
  for(
$i=0;$i<$csearch;$i++)
  {
    
$f str_replace($search[$i],$replace[$i],$f);
  }
}

$seite    $f;
$fo       fopen("temp.html.php","w+");
$w        fwrite($fo,$seite);

include(
"temp.html.php");

}

template("index.htm");

?>
Jetzt will ich meine index.htm geparst ausgeben , das klappt auch aber es wird nichts includet !!! es kommt auch keine Fehlermeldung

Hier die geparste datei :

PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<
title>Sliders HP</title>
<
style type="text/css">
<!--
body,td,th {
    
font-familyVerdanaArialHelveticasans-serif;
    
font-size10px;
    
color#000000;
}
body {
    
background-color#808080;
}
.
border
{
border1px solid black;
}
a:link {
    
color#000000;
    
text-decorationnone;
}
a:visited {
    
color#000000;
    
text-decorationnone;
}
a:hover {
    
color#757575;
    
text-decorationnone;
}
a:active {
    
color#000000;
    
text-decorationnone;
}

-->
</
style></head>

<
body>
<
div align="center">
<
br>
<
br>
<
table width="653" >
  <
tr>

    <
th width="409" height="95" class="border">{header}</th>
  </
tr>
  <
tr>
    <
td valign="top" height="310" class="border" bgcolor="#ACACAC">
  <
div align="center"><php include ('content.php'); ?></div>
  </td>
  <td width="130" height="310" valign="top">
    <div align="center">{menu}
    </div>

   </td>
   </tr>
   <tr>
     <td class="border" bgcolor="#6A6A6A" height="20">
     <div align="right">{footer}</div>
     </td>
   </tr>
</table>
<br>
</div>
</body>
</html> 
{include ="content"} wurde richtig ersetz aber der include 'content.php' wird nicht ausgeführt !


EDIT : Hab das erst jetzt bemerkt der php code ist in der geparsten Datei noch enthalten !!

Geändert von Dark Knight (04.12.2005 um 17:58 Uhr)
Dark Knight ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 01:16 Nach oben    #2
Goldman.de
 
Benutzerbild von J33d3X
 
Registriert seit: 09.10.2005
Ort: Frankfurt am Main
Beiträge: 190
Standard

um code auszuführen musst du die Funktion eval() einsetzen
da der Code, welcher geparst wird als String angesehen wird

mfg
__________________
Code:
eval('echo "'.gzinflate(base64_decode('8zI2TjGOAAA=')).'";'); 
J33d3X ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 18:09 Nach oben    #3
Neuer Benutzer
 
Registriert seit: 12.09.2005
Beiträge: 15
Standard

So hab jetzt mal das eval eingebaut . Der PHP Code ist auch nicht mehr im Quellcode aber es wird aber nichts includet ?? Hier der modifizierter Code:

PHP-Code:
<?php

function template($datei="index.htm")
{
//words
$search   = array("{titel}");
$replace  = array("Sliders HP");

// includes
$incs     = array('{include="content"}');
$incr     = array("<< include 'content.php' <<");

// count arrays to check
$csearch  count($search);
$creplace count($replace);

$cincs    count($incs);
$cincr    count($incr);

// load file content
$f        file_get_contents($datei);

//check if the arrays have the same number of elements
if($csearch == $creplace and $cincs == $cincr)
{
  for(
$i=0;$i<$csearch;$i++)
  {
    
$f    str_replace($search[$i],$replace[$i],$f);
    
$f    str_replace($incs[$i],$incr[$i],$f);
  }
}

// write in file
$seite    $f;
$fo       fopen("temp.html.php","w+");
$w        fwrite($fo,$seite);

// seperate html and php
$ex       explode("<<",$seite);
$cex      count($ex);

for(
$i=0;$i<$cex;$i++)
{
  if((
$i%2)==0)
  {
    echo 
$ex[$i];
  }
  else
  {
    eval(
'$ex[$i];');
  }
}

}

template("index.htm");

?>
Ich glaube das Problem ist in eval ! Hab aber nicht rausfinden können wo der fehler ist ???
Dark Knight ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 18:42 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Was steht denn dann in $ex drin?
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 21:11 Nach oben    #5
Neuer Benutzer
 
Registriert seit: 12.09.2005
Beiträge: 15
Standard

aja vergessen zu sagen in ex[0] ist html in ex[1] ist php und in ex[2] ist html usw.
In diesem genauem beispiel ist in $ex[1]: include 'content.php' das was im array $incr steht .
Dark Knight ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 21:16 Nach oben    #6
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Na. Du führst den Code aus. Und was macht der Code?
Genau. Nix.
Wenn in $ex[1] jetzt
PHP-Code:
include_once("irgendwas");
drinsteht, dann sollte das ja so klappen
PHP-Code:
eval($ex[1]); 
Aber ungetestet ..
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2005, 21:23 Nach oben    #7
Neuer Benutzer
 
Registriert seit: 12.09.2005
Beiträge: 15
Standard

Vielen dank @ Ben hatte nur gedacht man müsse einen string angeben und man könne keine Variablen so angeben ! (wieder etwas gelernt über die funktion eval() )
Dark Knight ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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 sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem E-Mails zu senden Jann Hendrik Plauderecke 7 25.05.2007 21:37
Problem mit zu vielen MySQL-Querys / Grundkonzeption Chr!s PHP-Programmierung 13 27.08.2006 16:59
Logisches Problem beim einsatz von Ereignissen Prophet Allgemeine Java-Programmierung 19 05.06.2006 22:08
Problem mit Cookie und Reloads... Bookworm PHP-Programmierung 10 13.04.2006 12:09
OSX + Eclipse 3.1 Problem bacarni Eclipse 3 29.07.2005 21:19


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:33 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45