PHP错误未定义的偏移量
收到通知:未定义偏移量:25英寸 C:\wamp\www\finalProjectDemo\search.php,第32行 我试图从一个文件中读取,并在其中搜索一个特定的名称和地址以进行输出。我知道数据库最好。这是我给大家的一个课堂作业,特别是这样安排的。我相信我几乎拥有了一切,但我只是遇到了这个问题。对PHP来说相当陌生 我有以下代码:PHP错误未定义的偏移量,php,undefined,offset,Php,Undefined,Offset,收到通知:未定义偏移量:25英寸 C:\wamp\www\finalProjectDemo\search.php,第32行 我试图从一个文件中读取,并在其中搜索一个特定的名称和地址以进行输出。我知道数据库最好。这是我给大家的一个课堂作业,特别是这样安排的。我相信我几乎拥有了一切,但我只是遇到了这个问题。对PHP来说相当陌生 我有以下代码: <html> <body> <?php // read lines into array // search array for
<html>
<body>
<?php
// read lines into array
// search array for string
// get 7 lines from there.
$i = 0;
$fileName = "addresses.txt";
$readFile = fopen($fileName, 'r');
$readByLineArray = array();
// Get search string from submission
$searchFirstName = $_POST['searchFirstName'];
$searchLastName = $_POST['searchLastName'];
$searchFirstNameSuccess = 0;
$searchLastNameSuccess = 0;
while (!feof($readFile))
{
$readByLineArray[$i] = fgets($readFile);
//echo "$readByLineArray[$i] read from array position $i";
//echo "<br />";
$i++;
}
fclose($readFile);
$arrLength = count($readByLineArray);
$currentArrayPosition = 0;
for ($x=0;$x<=$arrLength;$x++){
if ($searchFirstName == $readByLineArray[$x])
{
$searchFirstNameSuccess = 1;
$x++;
if ($searchLastName == $readByLineArray[$x])
{
$searchLastNameSuccess = 1;
$currentArrayPosition = $x - 1;
} else {
$searchFirstNameSuccess = 0;
}
}
}
for ($y=0;$y<=7;$y++){
echo "$readByLineArray[$currentArrayPosition]<br />";
$currentArrayPosition++;
}
?>
</body>
</html>
谢谢你的帮助
Ben---像这样更改
循环的
for ($x=0;$x<$arrLength;$x++){ //<--- Should be < and not <=
试试foreach:-
foreach ($readByLineArray as $temp){
if ($searchFirstName == $temp)
{
$searchFirstNameSuccess = 1;
$x++;
if ($searchLastName == $temp)
{
$searchLastNameSuccess = 1;
} else {
$searchFirstNameSuccess = 0;
}
}
}
我的if语句部分似乎也有问题。上一次调整修复了上一个问题,但无论我做什么,它似乎都无法成功比较和读取的每一行。实际上,在本例中,您试图做什么,似乎可以做得更简单。抱歉。我看错了你的回答。我正在尝试使用嵌套的IF语句来比较$searchFirstName和$readByLineArray[$x]。它基本上是读取已写入txt文件的姓名和地址,并与搜索字符串进行比较,以仅输出此人的姓名和地址。我知道数据库会更简单,但我没有那么奢侈,我正试图用一个文本文档创建类似的东西。。逐行检查数组中的名字和姓氏,如果找到匹配项,应该从数组中断开,对吗?
foreach ($readByLineArray as $temp){
if ($searchFirstName == $temp)
{
$searchFirstNameSuccess = 1;
$x++;
if ($searchLastName == $temp)
{
$searchLastNameSuccess = 1;
} else {
$searchFirstNameSuccess = 0;
}
}
}