在php搜索框中显示url

时间:2015-11-09 22:15:16

标签: php html web

我正在尝试使此搜索页面显示搜索栏下方的网址,而不是"产品"的实际名称。这是我走了多远,我目前卡住了。我还创建了一个主要的html页面,它只是搜索框的服务器。在此先感谢您的帮助。

    ************************************************/

// Credentials
$dbhost = "localhost";
$dbname = "tutorial";
$dbuser = "root";
$dbpass = "root";

//  Connection
global $tutorial_db;
$tutorial_db = new mysqli();
$tutorial_db->connect($dbhost, $dbuser, $dbpass, $dbname);
$tutorial_db->set_charset("utf8");

//  Check Connection
if ($tutorial_db->connect_errno) {
printf("Connect failed: %s\n", $tutorial_db->connect_error);
exit();
}

/************************************************
 Search Functionality
************************************************/

// Define Output HTML Formating
 $html = '';
 $html .= '<li class="result">';
 $html .= '<a target="_blank" href="urlString">';
 $html .= '<h3>nameString</h3>';
 $html .= '<h4>functionString</h4>';
 $html .= '</a>';
 $html .= '</li>';

 // Get Search
 $search_string = preg_replace("/[^A-Za-z0-9@]/", " ", $_POST['query']);
 $search_string = $tutorial_db->real_escape_string($search_string);

 // Check Length More Than One Character
if (strlen($search_string) >= 1 && $search_string !== ' ') {
  // Build Query
 $query = 'SELECT * FROM search WHERE function LIKE "%'.$search_string.'%" OR name 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['function']);
        $display_name = preg_replace("/".$search_string."/i", "<b class='highlight'>".$search_string."</b>", $result['name']);
        $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, $display url);
    }
}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);
}
}

我已尝试在&#34; if if statement&#34;但它还没有正确显示:

   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['function']);
        $display_name = preg_replace("/".$search_string."/i", "<b class='highlight'>".$search_string."</b>", $result['name']);
        $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, $display url);
    }

这是url应该出现的图像以及搜索页面的样子:

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试替换它:

$html = '';
 $html .= '<li class="result">';
 $html .= '<a target="_blank" href="urlString">';
 $html .= '<h3>nameString</h3>';
 $html .= '<h4>functionString</h4>';
 $html .= '</a>urlString2';
 $html .= '</li>';

删除:

echo $output, $display_url;

并添加以上代码:

$output = str_replace('urlString2', $display_url, $output);
echo $output;