我是一名計算機科學專業的學生,??我們正在使用 PHP 學習 Internet 編程。他們讓我們開始使用打開檔案和讀取檔案的基本代碼。但它不斷給我路徑不能為空的致命錯誤。我將在這里發布我的代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FirstCode!!</title>
</head>
<body>
<form action="first.php" method="get">
<br>Enter Filename: <input type="text" name="fname" id="">
<br>The Menu:
<br><select name="menu" id="">
<option value="1">1.Number Of Characters</option>
<option value="2">2.Number Of digits.</option>
<option value="3">3.Number of vowels</option>
<option value="4">4.Number of words</option>
<option value="5">5.Number of lines</option>
</select>
<br><input type="submit" value="Submit">
</form>
</body>
</html>
<?php
$fname = $_GET['fname'];
$menu = $_GET['menu'];
$fp = fopen($fname,"r") or die("File Not Found!!");
$cnt = 0;
$vcnt = 0;
$wcnt = 0;
$lcnt = 1;
$dcnt = 0;
switch ($menu) {
case 1:
while(!feof($fp)){
$ch = fgetc($fp);
$cnt ;
}
echo "<br>No of Characters:$cnt";
break;
case 2:
while(!feof($fp)){
$digit = fgetc($fp);
$digi = ord($digit);
if($digi>=48&&$digi<=57)
{
$dcnt ;
}
}
echo "<br>No of digits:$dcnt";
break;
case 3:
while(!feof($fp)){
$vowels = fgetc($fp);
if($vowels=='a'||$vowels=='e'||$vowels=='i'||$vowels=='o'||$vowels=='u'||$vowels=='A'||$vowels=='E'||$vowels=='I'||$vowels=='O'||$vowels=='U')
{
$vcnt ;
}
}
echo "<br>No of Vowels:$vcnt";
break;
case 4:
while(!feof($fp)){
$words = fgetc($fp);
if($words==" "||$words=="\n")
{
$wcnt ;
}
}
echo "<br>No of Words:$wcnt";
break;
case 5:
while(!feof($fp)){
$lines = fgetc($fp);
if($lines=="\n")
{
$lcnt ;
}
}
echo "<br>No of lines:$lcnt";
break;
default:
# code...
break;
}
fclose($fp);
?>
和錯誤:
致命錯誤:未捕獲的 ValueError:C:\xampp\htdocs\TYBSC\TenthPractical\first.php:27 中的路徑不能為空堆疊跟蹤:#0 C:\xampp\htdocs\TYBSC\TenthPractical\first.php(27): fopen('', 'r') #1 {main} 在第 27 行的 C:\xampp\htdocs\TYBSC\TenthPractical\first.php 中拋出
那么有什么建議嗎?
uj5u.com熱心網友回復:
如果您沒有為 GET 引數提供值fname(即,?fname='file.txt'在 URL 末尾包含或類似的值),您將看到此錯誤。
您應該僅在$_GET['fname']設定時執行 PHP 代碼,使用 aptly-named 來防止此致命錯誤isset():
<?php
$fname = $_GET['fname'];
$menu = $_GET['menu'];
if (isset($_GET['fname'])) {
$fp = fopen($fname,"r") or die("File Not Found!!");
// rest of your code...
}
?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326199.html
上一篇:Json物件到撇號陣列
