Bestanden uitlezen in de map test is geen enkel probleem.
Alleen blijf ik steken in de test folder, ik wil uitkomen in de absolute root van de server dus waar de map test ook in staat.
Ik heb ../ en ../../ en $_SEVER['DOCUMENT_ROOT'] geprobeerd en nog een aantal maar hoger dan de test folder kom ik niet.
$root als waarde van $_SERVER['DOCUMENT_ROOT'] gaat niet lukken want dan probeert het script public_html te openen onder test dus test/public_html/
../ zou moeten werken, dat is de enige juist oplossing en met ../ vanuit test open je iets in je DOCUMENT_ROOT. Welke foutmelding krijg je?
Probeer eens een directory listing:
Ik zal mijn code eens posten, is eerste keer dat ik met opendir aan de gang ga normaal gesproken maak ik gewoon met msqli verbinding met mijn database.
Voorbeeldje indeling server:
-in de public_html-
-map test
- index.php
- sb_home.html
- sb_lestijden.html
-in de map test-
- bestand.php
Vanuit het bestand bestand.php wil ik dus de bestanden sb_lestijden.html en sb_home.html uitlezen.
In mijn code haal ik door middel van een strlen de eerste 2 letters op, zo krijg ik alles beginnend met de letter sb te voorschijn. Vervolgens gebruik ik een glob om de extentie op te vragen zodat ik alleen de .html bestanden terug krijg en geen mappen of php file die beginnen met sb.
Vervolgens remove ik de sb_ en de extentie voor het echo'en.
Alles werkt goed behalven het terecht komen in de root.
En ik krijg geen errors, ik heb het gestest op mijn wampserver en op mijn webserver.
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
$root = "../";
echo $root. "<br/>";
echo "<table width='400' border='0'>";
echo " <tr>";
echo " <td width='16'> </td>";
echo " <td width='160'><strong>Name</strong></td>";
echo " <td width='194'><strong>Last Modified</strong></td>";
echo " </tr>";
if ($handle = opendir($root)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$sub = substr($file, 0, 2); //get fist to characters
if($sub == "sb"){ //if equal to sb go to next step
$end_html = glob("" . "" . "*.html"); //get all files with the extention html
}
}
}
foreach($end_html as $end_file){ //echo all files
$end_file = substr($end_file ,3);
$end_file = str_replace(".html", "", $end_file);
echo " <tr>";
echo " <td colspan='2' valign='bottom'><a href='edit_page.php?name=".$end_file."' class='file'><img src='images/page_white_edit.png' class='fileimg' /> ".$end_file. "</a></td>";
echo " <td valign='bottom'>".date ("d-m-Y H:i:s", filemtime("sb_".$end_file.".html"))."</td>";
echo " </tr>";
}
closedir($handle);
echo "</table>";
}
?>
Je hebt niet goed getest, je script geeft meerdere errors:
Notice: Undefined variable: end_html in /var/www/website9/test/fl.php
Warning: Invalid argument supplied for foreach() in /var/www/website9/test/fl.php
Je hebt niet goed getest, je script geeft meerdere errors:
Notice: Undefined variable: end_html in /var/www/website9/test/fl.php
Warning: Invalid argument supplied for foreach() in /var/www/website9/test/fl.php
Op 2 servers geen fout gezien op localhost gaat t ook goed en errors staan aan zoals je ziet.
[size=xsmall]Toevoeging op 23/02/2011 21:25:26:[/size]
Weer een tijdje mee gestoeid maar nog niet uitgekomen :(
[size=xsmall]Toevoeging op 24/02/2011 12:53:33:[/size]
Anyone?
[size=xsmall]Toevoeging op 24/02/2011 12:54:02:[/size]
Victor Php op 23/02/2011 13:29:37
Ik kom op de website van de telegraaf als ik op de link klik.
Foutje?