Problem mit Funktionen

Moin,
Ich habe auf meiner page einige teile die abhängig vom datum angezeigt werden und der quelltext an sich funktioniert auch allerdings ist es etwas umständlich die selben zeilen immer wieder zu schreiben nur um das gleiche an anderer stelle wieder anzeigen zu können. Im eigentliche weis ich nur nicht wie ich die die variablen in die funtion übergeben soll…
Das sind mehrere arrayblöcke…

[CODE]$t[1][„name“]=„array1“;
$t[1][„link“]=„download/aktuell/predigt.php“;
$t[1][„date“]=mktime(0,0,0,8,19,2008);

$t[2][„name“]=„array2“;
$t[2][„link“]=„download/aktuell/predigt.php“;
$t[2][„date“]=mktime(0,0,0,08,15,2008);

$pre=2 * 86400;
$post=7 * 86400;
[/CODE]

Kann mir da jemand helfen?
Thx:)

Wenn du große Strukturen aufbauen willst, kannst du das nicht sehr abkürzen. Alles was mir bei dir einfällt, ist:

$t = array( array( 'name' => '...', 'link' => '...', 'date' => mktime(...) ), array( 'name' => '...', 'link' => '...', 'date' => mktime(...) ), ... );Das spart immerhin ein paar Zeichen und Schreibarbeit und ist einigermaßen lesbar. Interpolation habe ich auch eingespart.

funktionsuafruf wäre dann so in etwar:
[PHP]
function make_what($t)
{

code

return $werte_die_rauskommen;
}

$werte = make_what($t);
[/PHP]

hilft mir jetzt noch nicht so ganz mit

function funktion ($t) hab ichs auch probiert
funktioniert trotzdem nicht … ich zeig auch mal eben die gekürzte form meines quelltextes…

[CODE]<?php
$t[1][„name“]=„array1“;
$t[1][„link“]=„download/aktuell/datei.php“;
$t[1][„date“]=mktime(0,0,0,8,19,2008);

$pre=2 * 86400;
$post=7 * 86400;

function funktion ($t)
{ for ($i=1;$i<=count($t);$i++) {
if (time()>$t[$i][„date“]-$pre && time()<$t[$i][„date“]+$post) {
echo ($t[$i][„name“]." vom „.date(„d.m.Y“,$t[$i][„date“]).“ downloaden");
echo („Link\n“);
}
else {
echo („“);
}
}
}

funktion ($t, $pre, $post);
unset($t, $pre, $post);
?>
html Quelltext

<?php $t[1]["name"]="array3"; $t[1]["link"]="download/aktuell/datei.php"; $t[1]["date"]=mktime(0,0,0,8,17,2008); $pre=1 * 86400; $post=21 * 86400; funktion ($t, $pre, $post); unset($t, $pre, $post); ?>[/CODE]

Den einzigen wert den ich im Browser sehen kann ist der html quelltext dazwischen …

[PHP]

<?php $t[1]["name"]="array1"; $t[1]["link"]="download/aktuell/datei.php"; $t[1]["date"]=mktime(0,0,0,8,19,2008); $pre = 2 * 86400; $post = 7 * 86400; function funktion ($t,$post,$pre) { for ($i=1;$i<=count($t);$i++) { if (time()>$t[$i]["date"]-$pre && time()<$t[$i]["date"]+$post) { echo ($t[$i]["name"]." vom ".date("d.m.Y",$t[$i]["date"])." downloaden"); echo ("Link\n"); } else { echo (""); } } } funktion ($t, $pre, $post); [/PHP]

funtioniert auch nciht… bei deinem script wird bei mir im browser das hier angezeigt:

$t[$i]["date"]-$pre && time()<$t[$i]["date"]+$post)         {             echo ($t[$i]["name"]." vom ".date("d.m.Y",$t[$i]["date"])." downloaden");             echo ("[Link](file:///C:/xampp/htdocs/workspace/html/predigten/%22.$t%5B$i%5D%5B%22link%22%5D.%22)\n");         }         else         {             echo ("");         }     } }  funktion ($t, $pre, $post); 

ah ne sry hatte grad php auf meinem pc nciht angestellt… funktioniert danke :slight_smile: