18. december 2006 - 19:56
Der er
16 kommentarer
Hjælp til formulering af funktion
Jeg har brug for hjælp til en funktion, jeg skal have ind i en template, men jeg tror, jeg har forkert fat i det: $tpt = 'tpt/index.tpt'; $html_out = file_get_contents($tpt); function BuildMenu() { if ($handle = opendir($_SERVER['DOCUMENT_ROOT'])) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && $file != "index.php" && $file != "img" && $file != "css" && $file != "inc" && $file != "tpt") { '<span class="menuLink"><a href="' . $file . '">' . $file . '</a></span>'; } } closedir($handle); } } $html_out = str_replace("<!--menu//-->", BuildMenu(), $html_out); echo $html_out; pointen er, at jeg skal have den kode, jeg skrev, der laver en liste over nogle mapper til at blive repræsenteret af linien "<!--menu//-->" i en ekstern .tpt-fil.. problemet er bare formuleringen.
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
19. december 2006 - 13:23
#1
Jeg kan ikke helt finde ud af hvad du vil. Du skriver ikke til din temp-fil nu, vil du gerne det? Du vil gerne skrive din mappestruktur til din tempfil, er det korrekt?
19. december 2006 - 15:14
#2
Nej, selve funktionen går bare ud på at skrive en liste over, hvilke mapper, der er et bestemt sted.. Med undtagelserne ".", "..", "index.php", "img", "css", "inc" og "tpt". Men det er mere eller mindre irrelevant, for den virker fint. Jeg er ude på, at få hele funktionen til at blive repræsenteret af linien "<!--menu//-->" i en .tpt(template)-fil. Altså: $html_out = str_replace("<!--menu//-->", *en linie, der repræsenterer funktionen (i mit eksempel BuildMenu)*, $html_out;
19. december 2006 - 15:19
#3
<ole> Hvad mener du med: "at få hele funktionen til at blive repræsenteret af linien"? /mvh </bole>
19. december 2006 - 15:26
#4
ok, ud i pap: altså, f.eks kan man repræsentere linien "file_get_contents($tpt)" med linien "$html_out" ved at gøre dette: $html_out = file_get_contents($tpt); men man kan ikke gøre dette: $BuildMenu = *hele den funktion, jeg har skrevet* kan man så gøre dette?: function BuildMenu() { *hele funktionen* } og så efterfølgende skrive: $html_out = str_replace("<!--menu//-->", BuildMenu(), $html_out); åbenbart ikke, for det lader ikke til at virke. men hvad kan man så gøre? ..er mit spørgsmål
19. december 2006 - 15:28
#5
får du nogen fejl med den der ikke virker?
19. december 2006 - 15:31
#6
næh, mapperne kommer bare ikke til syne. det eneste, der står, der hvor mapperne skulle blive oplistet, når jeg kigger i kildekoden er: <!--menu//--> ..
19. december 2006 - 15:33
#7
hmm har du prøvet med at sætte echo eller print foran din '<span>...' kode?
19. december 2006 - 15:44
#8
ja, men så bliver det jo bare sat ind i toppen. pointen er, at jeg skal kunne bestemme præcis hvor koden sættes ind via en template(.tpt)-fil..
19. december 2006 - 15:55
#9
ahh, det skulle kun blive skrevet der hvor der står <!--menu//-->
19. december 2006 - 15:58
#10
præcis! :D
19. december 2006 - 16:07
#11
øhh, smækforvirret her. Betyder det at det virker eller..?
19. december 2006 - 16:22
#12
nej :D ..jeg må virkelig, virkelig være dårlig til at formulere mig, så. når jeg skriver linien "<!--menu//-->" i .tpt-filen, vil jeg have, at denne kode skal komme frem i liniens sted: if ($handle = opendir($_SERVER['DOCUMENT_ROOT'])) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && $file != "index.php" && $file != "img" && $file != "css" && $file != "inc" && $file != "tpt") { '<span class="menuLink"><a href="' . $file . '">' . $file . '</a></span>'; } } closedir($handle); } } and that's it..
19. december 2006 - 16:26
#13
lidt mindre forvirret her ;o) har du forsøgt det her: function BuildMenu() { $menu = ''; if ($handle = opendir($_SERVER['DOCUMENT_ROOT'])) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && $file != "index.php" && $file != "img" && $file != "css" && $file != "inc" && $file != "tpt") { $menu .= '<span class="menuLink"><a href="' . $file . '">' . $file . '</a></span>'; } } closedir($handle); } echo $menu; }
19. december 2006 - 16:30
#14
jatak, det inspirerede mig til en løsning! genialt, tak for det.. poster du lige et svar i stedet for en kommentar, så jeg kan sende dig de points?
19. december 2006 - 16:31
#15
du får et svar, kommer du så med løsningen?
19. december 2006 - 17:59
#16
$tpt = 'tpt/index.tpt'; $html_out = file_get_contents($tpt); $BuildMenu = ''; if ($handle = opendir($_SERVER['DOCUMENT_ROOT'])) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && $file != "index.php" && $file != "img" && $file != "css" && $file != "inc" && $file != "tpt" && $file != "txt") { $BuildMenu .= '<span class="menuLink"><a href="' . $file . '">' . $file . '</a></span>'; } } closedir($handle); } $BuildBlog =''; $parser=xml_parser_create(); xml_set_element_handler($parser, "start_element", "end_element"); xml_set_character_data_handler($parser, "character_data"); $fp=fopen("txt/blog.txt", "r"); while( $line = fgets( $fp,100)){ $BuildBlog .= $line; } $html_out = str_replace("<!--menu//-->", $BuildMenu, $html_out); $html_out = str_replace("<!--indhold//-->", $BuildBlog, $html_out); echo $html_out;
Vi tilbyder markedets bedste kurser inden for webudvikling