@hellion35

Почему не ищет новость в базе по заголовку?

Добрый день. Беру новости с регионального сайта:
$html = file_get_contents('https://my-domain.ru');
$doc = phpQuery::newDocument($html);
$news = array();
$entry = pq("article")->find(".lenta-big-item");

foreach($entry as $row ){
    $row = pq($row);
    $title = $row->find('.lenta-title')->text();
    $i = search_news(trim($title));
    
    if( $i ){
        $news[] = $row->find('.lenta-title')->attr('href');
    }
}

Функция search_news() должна искать новость по заголовку и если новость не найдена, вернуть true.
Вот сама функция:
function search_news( $title = '' ){
    include "../includes/config.php";
    $query = "SELECT * FROM news WHERE news_title LIKE '%$title%'";
    $r = mysqli_query($connect, $query);

    if($r->num_rows == 0) {
        return true;
    }else{
        return false;
    }
    mysqli_close($connect);
}

Проблема в том что если заголовок я передаю в переменной $title, то новость в базе не находит. Если я в функции переопределяю переменную $title ($title = 'Заголовок новости'), то новость успешно ищется в базе. Не понимаю, что может быть не так? Кодировка? Не понимаю что нужно сделать что бы новость нормально искалась по переменной переданной в функцию. Подскажите пожалуйста.
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
https://habr.com/ru/post/563530/

Как правильно написал galaxy в комментариях, если база что-то "не находит", надо переводить обе строки в бинарное представление с помощью bin2hex() и смотреть разницу.

и потом по результатам добавить str_replace
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы