我目前在搜索 JSON 文件时遇到问题,我正在根据搜索的单词搜索和显示院系,但它仅在我输入全名时显示值,如果我喜欢只键入前几个字符并显示名称以它开头的结果,我如何让搜索工作。
这是我的代码:
<?php
if(isset($_GET['search_word']))
{
$search_word=$_GET['search_word'];
$string = file_get_contents("faculty_info.json");
$jfo = json_decode($string);
// copy the posts array to a php var
$posts = $jfo->faculty_info;
// listing posts
foreach ($posts as $post) {
if($post->name == "$search_word"){
echo $post->name;
echo "<br>";
echo $post->division;
echo "<br>";
echo $post->school;
echo "<br>";
echo $post->designation;
echo "<br>";
echo $post->email;
echo "<br>";
echo $post->room;
echo "<br>";
echo "<br>";
}
}
}
?>
试试这个
$post->name = 'How are you?';
$search_word = "How";
$pos = strpos($post->name, $search_word);
if ( $pos !== false && $pos == 0) {
echo 'found';
//do your script
}
您可能还希望将strpos
替换为stripos
,以防需要处理不区分大小写的搜索。