if (strlen($search_string) >= 1 && $search_string !== ' ') {
// Build Query
$query = 'SELECT * FROM User WHERE email LIKE "%'.$search_string.'%"';
// Do Search
$result = $tutorial_db->query($query);
while($results = $result->fetch_array()) {
$result_array[] = $results;
}
// Check If We Have Results
if (isset($result_array)) {
foreach ($result_array as $result) {
// Format Output Strings And Hightlight Matches
$display_function = preg_replace("/".$search_string."/i", "<b class='highlight'>".$search_string."</b>", $result['firstName']);
$display_name = preg_replace("/".$search_string."/i", "<b class='highlight'>".$search_string."</b>", $result['lastName']);
//$display_url = 'http://php.net/manual-lookup.php?pattern='.urlencode($result['function']).'&lang=en';
// Insert Name
$output = str_replace('nameString', $display_name, $html);
// Insert Function
$output = str_replace('functionString', $display_function, $output);
// Insert URL
//$output = str_replace('urlString', $display_url, $output);
// Output
echo($output);
}
}else{
// Format No Results Output
$output = str_replace('urlString', 'javascript:void(0);', $html);
$output = str_replace('nameString', '<b>No Results Found.</b>', $output);
$output = str_replace('functionString', 'Sorry :(', $output);
// Output
echo($output);
}
}
这是一个实时搜索功能。搜索电子邮件地址,并显示匹配的名字和姓氏。我有两个问题。
1:当我输入@时,它不会给我任何结果。
2:我希望我可以点击结果并输入输入框,但是现在它只会重新打开页面。
3:我只想在@之前搜索电子邮件地址。喜欢text@hotmail.com。我只需要搜索文本而不是hotmail.com。我怎么能这样做。电子邮件在数据库中
答案 0 :(得分:0)
在输入框中输入@
时,此部分出现问题
foreach ($result_array as $result) {
// Make Sure you have @ in your $result['firstName']
$display_function = preg_replace(
"/".$search_string."/i",
"<b class='highlight'>".$search_string."</b>",
$result['firstName']);
// Make Sure you have @ in your $result['lastName']
$display_name = preg_replace(
"/".$search_string."/i",
"<b class='highlight'>".$search_string."</b>",
$result['lastName']);
// Insert Name
$output = str_replace('nameString', $display_name, $html);
// Insert Function
$output = str_replace('functionString', $display_function, $output);
// Insert URL
//$output = str_replace('urlString', $display_url, $output);
// Output
echo($output);
}
如果subject参数是数组,则preg_replace()返回一个数组,否则返回一个字符串。
查看preg_replace()功能
If matches are found, the new subject will be returned, otherwise subject
will be returned unchanged or NULL if an error occurred.