0

Как можно сделать ответ жирным шрифтом?

Вот php код:

<?php
if(isset($_GET['go'])) {
    $search = $_GET['go'];
$query = mysql_query("SELECT * FROM search WHERE title LIKE '%$search%' OR url LIKE '%$search%' OR result LIKE '%$search%'") or die("Нет доступ!");
$count = mysql_num_rows($query);
if($count == 0) {
    $output = 'Ничего не найден!';
} else {
    while($row = mysql_fetch_array($query)) {
        $title = $row['title'];
        $url = $row['url'];
        $result = $row['result'];

        $output .= "&lt;div id='result'&gt;
                        &lt;div id='title'&gt;
                            &lt;a target='_blank' href='$url'&gt;$title&lt;/a&gt;
                        &lt;/div&gt;
                        &lt;div id='url'&gt;
                            &lt;a target='_blank' href='$url'&gt;$url&lt;/a&gt;
                        &lt;/div&gt;
                        &lt;div id='result1'&gt;
                            ".$result."
                        &lt;/div&gt;
                        &lt;/div&gt;
                        ";
    }
}

} ?>

Например, запрос такой скачать и ответ, например, скачать через торрент можно так или есть другой php код?
Пример http://go.mail.ru/search?fm=1&rf=go.mail.ru&q=скачать

Узбек Баха
  • 2,558
  • 5
  • 21
  • 45

2 Answers2

1
$title = $row['title']

меняете на

$title = str_replace($search, "<b>$search</b>", $row['title']);

и

$result = $row['result'];

меняете на

$result = str_replace($search, "<b>$search</b>", $row['result']);
dlarchikov
  • 4,403
  • @dimka3210, код работает, но есть минусы, например, индексирует только большой буквами или только маленький буквами. Есть другой вариант? – Узбек Баха Feb 22 '15 at 11:57
1

По вашему примеру:

Простейшая санитизация

$search = strip_tags($_GET['go']);

Вариант с highlight предложил @dimka3210, либо чуть более гибкий подход подсветки целых слов:

$search = preg_quote($search, '/');
$title = preg_replace("/\b({$search})\b/iu", '<b>$1</b>', $row['title']);

Пример работы

Идеально механизм подсветки слов работать не будет, ибо подразумевает точное совпадение. Требуется использовать морфологический анализ (нахождение словоформ слов). Для этого необходимо использовать специальные инструменты, к примеру, phpmorphy (копия на github). В общем, смотрите на последний пункт, я Вам привёл ссылку на ранее данный ответ.

romeo
  • 5,078