Wil devan de volgende code een functie maken, maar die if/else constructie mag daar geloof ik niet in..
Kan iemand me even helpen?
<?
// Array met namen
//
function test()
{$aReplace=array(
'FORM_ACTION' => ''.htmlentities(strip_tags($_SERVER[PHP_SELF])).'',
'EVENT_ITEMS' => 'event line',
'HOOFD' => 'event line',
'CP_ADMIN_PWD' => 'login_pass');
// Bestaat het bestand wel?
//
if (!file_exists($sTemplate))
{
echo 'Template bestaat niet:'.$sTemplate;
}
else
{
// open het bestand
if (!$fp = fopen($sTemplate, 'r'))
{
echo 'Kon template niet openen';
}
else
{
// Lees de template
//
$sTheme = fread($fp, filesize($sTemplate));
fclose($fp);
};
ik weet niet wat je hier doet? maar een een accolade met een puntkomma afsluiten doet sowieso niks. Daarnaast moet je ook dingen 'returnen'
dus return $variabel oid edit:
Ff wat entertjes, of wat spaties in je script... Edit 2:"
dit is de boosdoener:
FORM_ACTION' => ''.htmlentities(strip_tags ($_SERVER[PHP_SELF])).'',
Ik zet nooit wat ik een functie , dus dit is me eerst keer ( was eerst als normale code bedoelt .. maar moet het in een functie hebben voor aantal redenen)
heb er al wel function test() voorgezet :D , hahaha .. heo verder ^^
Edit: OO
FORM_ACTION' => ''.htmlentities(strip_tags ($_SERVER[PHP_SELF])).'', werkte anders wel goed ..
Ik zie in ieder geval dit foutje: $_SERVER[PHP_SELF]. Daar moeten nog quotes omheen: $_SERVER['PHP_SELF']. Waarom heb je trouwens lege strings ervoor staan ('' .htmlen...)) .'')?
Waar haal je de variabele '$sTemplate' vandaan? Waarom lees je een template en doe je er niets mee? En zoals Jason al zei, waarom staat er een ';' (puntkomma) achter je accolades? Wat is het nut van je functie, hij doet niet echt veel op het eerste gezicht.
Ook heb je nog andere variabele die je nergens vandaan haalt...
Het nut van een functie is dat je hem een aantal keer met andere scripts kan gebruiken, net als de PHP functie, gebruik dus gewoon bijna tot geen variabelen uit een andere file. Defineer hem dan zo.
<?
function test($variabelen, $die, $je, $nodig, $hebt) {
// code
}
?>
// Maak een placeholder en replacement voor 'title'
$aPlaceholders[] = '[TITLE]';
$aReplacements[] = 'Zeer Zimpele Templates';
// Maak een placeholder en replacement voor 'main'
$aPlaceholders[] = '[HOOFD]';
$aReplacements[] = 'Dit zijn Zeer Zimpele Templates';
$sTemplateFilename = 'test.html';
// Bestaat het bestand wel?
if (!file_exists($sTemplateFilename))
{
echo 'Template bestaat niet:'.$sTemplateFilename;
}
else
{
// open het bestand
if (!$fp = fopen($sTemplateFilename, 'r'))
{
echo 'Kon template niet openen';
}
else
{
// Lees de template
//
$sContent = fread($fp, filesize($sTemplateFilename));
fclose($fp);
// Vervang de placeholders
//
$sContent = str_replace($aPlaceholders, $aReplacements, $sContent);
echo $sContent;
};
};
?>
Dit is de eigenlijke code van yapf! , aleen ik wil dat hij na een query ( bijv bij nieuwsscript) het template pas gebruikt .. zodat ik dus een template kan maken voor die output.. ( vandaar dat ik zoiets dan als functie moet aanroepen..)
Maar zoals ik al zei .. ik snap er helemaal niks meer van .. als template systeem opzich werkt het goed , maar hoe maak gebruik ik het als template voor de output...
EN: $sTemplateFilename = 'test.html'; -> dit moet zoviezo op de pagina zelf staan die dit template.php file include.. ( het is geen vaste waarde..)