我一直在建立對某些類型的網站上發佈了一個關於PHP搜索工具(本作的目的,請接受MySQL是不可能的)。PHP搜索關鍵字
經過一系列的程序,我們獲得了冠軍,併爲每個崗位的標籤並將其存儲在一個名爲$full
變量。
搜索字詞坐在稱爲$terms
$full = $title . ' ' . $tago[$result->ID];
兩者都轉換爲小寫變量。
然後,我們想用$terms
我想這對尋找類似的話在$full
。
$final = strpos($full,$terms);
它的工作原理,但不是我所需要的。
- 這將匹配來自標題和標籤的類似單詞,但根本不處理空格。我嘗試刪除空格和逗號,從標題和標籤無濟於事。
- 如果用戶在某人的名字是由兩個標籤,而不是一個不會找到任何結果的。
- 它不能處理超過一個字,更不用說超過一個任期,這兩個我想要它做的。
下面是完整的劇本,如果它是有幫助
$proto = $_GET['p'];
$terms = $_GET['s'];
$terms = strtolower($terms);
$terms = str_replace(' ', '', $terms);
$ids = array();
if($proto == 'inline') {
$search = get_posts('post_type=post&post_status=publish');
foreach($search as $result) {
$title = get_the_title($result);
$tags = wp_get_post_tags($result->ID);
foreach($tags as $tag){ $tago[$result->ID].= $tag->name;}
$full = $title . ' ' . $tago[$result->ID];
$full = strtolower($full);
$final = strpos($full,$terms);
if($final != false){
$ids[] = $result->ID;
}
}
if ($ids[0] == '') {
echo '<div align="center" style="text-align:center; color:#FFF;">No Results Found</div>';
return false; } else {
$args = array('post__in' => $ids);
$srs = get_posts($args);
foreach($srs as $sr) {
echo '<a href="'.$sr->post_slug.'"><img src=""/><b>'.$sr->post_title.'</b>'. $tago[$result->ID].'<span>'.date('dS M Y', strtotime($sr->post_date)).'</span></a>';
}
}
}
值
$條款可能包含某些值由用戶輸入的搜索說,「紅車」 ;
$完全包含文章標題和標籤,因此可能會說。 「紅色vaxhaul是不是很好,車輛,汽車,可怕,醜陋」
所以應該在這種情況下被發現。
你可以舉一個你想要它找到的例子,顯示$ full和$ terms的值可能會更容易爲你創建一個解決方案 –
@Jason完成更新 –