2017-06-09 2 views
-3

Meine PHP-Datei hat mehrere Fehler. Der erste muss etwas mit Berechtigungen machen. Normalerweise ist daran nichts falsch, aber jetzt benutze ich eine CSV-Datei. Ich denke, das ist das Problem. Aber ich verstehe die anderen Warnungen nicht.Erlaubnis der CSV-Datei in PHP

Welche Berechtigung muss ich hinzufügen?

$filename = "menuitems.csv"; 
$fp = fopen($filename, "r"); 

while ($data = fgetcsv($fp, filesize($filename), ",")) { 
    if (trim($data[0]) == '') break; 
    $href = strtolower(substr($data[1], 0, 7)); 
    if ($href == "http://") 
      print "<li> <a href=\"" . data[1] . "\" target=\"_blank\">" . $data[0] . "</a></li>\n"; 
    else 
     print "<li> <a href=\"" . data[1] . "\" >" . $data[0] . "</a></li>\n"; 
} 

fclose($fp); 
echo "</ul>\n"; 
echo "</div>\n"; 

Warning: fopen (menuitems.csv): failed to open stream: Permission in /Applications/XAMPP/xamppfiles/htdocs/basis/php/index.php auf Linie 10 verweigert

Warning: fgetcsv() erwartet Parameter 1 als Ressource, boolean gegeben in /Applications/XAMPP/xamppfiles/htdocs/basis/php/index.php on line 11

Warnung: fclose() erwartet Parameter 1 als Ressource, boolean gegeben in /Applications/XAMPP/xamppfiles/htdocs/basis/php/index.php on line 21

+0

Die zweite und dritte sind wegen der ersten. Sie sind nicht berechtigt, eine Datei an diesem Speicherort zu erstellen. Daher schlagen auch die anderen Aufrufe fehl, die auf dieser Datei basieren. – ceejayoz

+0

Ich weiß nicht, welche Erlaubnis ich hinzufügen muss, und wie? – Soccerlife

Antwort

0

In der CSV-Datei, die in den Dokumentstamm verschoben wurde, sind keine Berechtigungen korrekt festgelegt. Sie können diese mehr Möglichkeiten, unter anderem in den Dateieigenschaften-Dialog (über Rechtsklick-Menü) Ändern Erlaubnis oder den PHP-Befehl verwenden:

 chmod("/somedir/somefile", 0644); 

aber in einem eigenen Ordner aus dem Stammverzeichnis statt Programmdateiverzeichnis der Installation XAMPP wird dieses Problem in den meisten XAMPP-Versionen beheben.

+0

Ich habe das versucht: chmod ("/Applications/XAMPP/xamppfiles/htdocs/basis/php/menuitems.csv", 0644); Aber das hat nicht funktioniert – Soccerlife

+0

dann müssen Sie ein \ zum Dateinamen hinzufügen. ($ filename = "\ csvfile.csv"); Einige PHP-Versionen hängen das automatisch an, manche nicht. Ich werde hier den Rest Ihres Codes überprüfen, wenn Sie etwas falsch mit Ihrer fopen-Anweisung haben. –

+0

Was genau meinst du? – Soccerlife