使用 php 从文本文件中获取数据
Fetch data from a text file using php
我有一个文本文件,是我用另一个 php 脚本创建的,其中包含以下内部信息:姓名、phone 和地址。格式如下:
姓名
phone
地址
我想用另一个 php 脚本来搜索给定名称的文本文件。如果名称存在,那么它会将结果放在搜索框下,如果不存在,那么它将显示一条错误消息。
到目前为止,这是我的代码:
<!DOCTYPE HTML>
<html>
<head>
<title>Phonebook Search</title>
</head>
<body>
<form action="" method="post">//my search box.
<div><h1>Phonebook Search</h1>
<label>Enter name: <input type="text" name="name" /></label>
<input type="submit" value="Search" />
</div>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")//the condition after pressing the search button.
{
$name = $_POST["name"];
$filename = 'phonebook.txt';
$file = file_get_contents($filename);
if (strpos($file, "$name"))
{
echo "$name";
}
$lines = file("phonebook.txt", FILE_IGNORE_NEW_LINES);
}
?>
</body>
</html>
如有任何帮助,我们将不胜感激。如果您需要更多信息,我会提供。
除了清理代码的一些小部分(将 "$name"
替换为 $name
)之外,您还必须检查 strpos(...) !== false
,因为位置 0
将被计算为 FALSE
。看看 php.net/manual/en/function.strpos.php)。 !==
将考虑类型而不仅仅是两个变量的值。
<!DOCTYPE HTML>
<html>
<head>
<title>Phonebook Search</title>
</head>
<body>
<form action="" method="post">//my search box.
<div><h1>Phonebook Search</h1>
<label>Enter name: <input type="text" name="name" /></label>
<input type="submit" value="Search" />
</div>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$name = $_POST["name"];
$filename = 'phonebook.txt';
$file = file_get_contents($filename);
// transform $name to e.g. lowercase (ignores case entered by user)
if (strpos($file, $name) !== false)
{
echo $name;
}
// what is this needed for?
$lines = file($filename, FILE_IGNORE_NEW_LINES);
}
?>
</body>
</html>
我同意@PeterSH 的评论:使用另一种格式,例如 JSON
,它具有您可以在其中搜索或使用数据库的预定义结构。
我有一个文本文件,是我用另一个 php 脚本创建的,其中包含以下内部信息:姓名、phone 和地址。格式如下: 姓名 phone 地址 我想用另一个 php 脚本来搜索给定名称的文本文件。如果名称存在,那么它会将结果放在搜索框下,如果不存在,那么它将显示一条错误消息。 到目前为止,这是我的代码:
<!DOCTYPE HTML>
<html>
<head>
<title>Phonebook Search</title>
</head>
<body>
<form action="" method="post">//my search box.
<div><h1>Phonebook Search</h1>
<label>Enter name: <input type="text" name="name" /></label>
<input type="submit" value="Search" />
</div>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")//the condition after pressing the search button.
{
$name = $_POST["name"];
$filename = 'phonebook.txt';
$file = file_get_contents($filename);
if (strpos($file, "$name"))
{
echo "$name";
}
$lines = file("phonebook.txt", FILE_IGNORE_NEW_LINES);
}
?>
</body>
</html>
如有任何帮助,我们将不胜感激。如果您需要更多信息,我会提供。
除了清理代码的一些小部分(将 "$name"
替换为 $name
)之外,您还必须检查 strpos(...) !== false
,因为位置 0
将被计算为 FALSE
。看看 php.net/manual/en/function.strpos.php)。 !==
将考虑类型而不仅仅是两个变量的值。
<!DOCTYPE HTML>
<html>
<head>
<title>Phonebook Search</title>
</head>
<body>
<form action="" method="post">//my search box.
<div><h1>Phonebook Search</h1>
<label>Enter name: <input type="text" name="name" /></label>
<input type="submit" value="Search" />
</div>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$name = $_POST["name"];
$filename = 'phonebook.txt';
$file = file_get_contents($filename);
// transform $name to e.g. lowercase (ignores case entered by user)
if (strpos($file, $name) !== false)
{
echo $name;
}
// what is this needed for?
$lines = file($filename, FILE_IGNORE_NEW_LINES);
}
?>
</body>
</html>
我同意@PeterSH 的评论:使用另一种格式,例如 JSON
,它具有您可以在其中搜索或使用数据库的预定义结构。