В базу данных в поле вместо текста вставляются цифры.

Pavl

Active Member
Регистрация
28.09.2016
Сообщения
43
Добрый день!
Делаю парсинг сайта.
Скрипт нормально работает, за исключением одного момента.
В базе данных есть поле comments. В это поле должны вводиться комментарии в виде текста. В одной из строк кода я пишу:
PHP:
$comments = pq($topic)->find('ul.threadstats a')->text();
То есть, данные должны заносится в базу данных в виде текста, но они заносятся в виде чисел - количества комментариев, а не самих комментариев.
Почему так происходит?
PHP:
require 'C:\OSPanel\vendor\autoload.php';
 
$host = 'localhost'; // адрес сервера
$database = 'mysite'; // имя базы данных
$user = 'root'; // имя пользователя
$password = ''; // пароль
 
// подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка " . mysqli_error($link));
 
 
 
$url = 'определённый сайт';
 
$message = '';
 
$mainPage = file_get_contents($url);
$pq = phpQuery::newDocument($mainPage);
$urlsRazdela= $pq->find('div.forumdata h2 a');
foreach($urlsRazdela as $elem){
$urlRazdela = $url.pq($elem)->attr('href');
$page = file_get_contents($urlRazdela);
$pq = phpQuery::newDocument($page);
$topics = $pq->find('li.threadbit');
foreach($topics as $topic){
$nameTopic = trim(pq($topic)->find('h3.threadtitle a')->text());
$nameTopic = str_replace('\'','`',$nameTopic);
$nameTopic = str_replace('\"','`',$nameTopic);
$hrefTopic = $url.pq($topic)->find('h3.threadtitle a')->attr('href');
$comments = pq($topic)->find('ul.threadstats a')->text();
 
//делаем проверку на новые темы
$query="SELECT name FROM content6 WHERE name='".$nameTopic."'";
$result= mysqli_query($link,$query);
$data = mysqli_fetch_assoc($result);
if(empty($data)){
$query = htmlspecialchars("INSERT INTO content6 SET name='".$nameTopic."', href='".$hrefTopic."', comments='".$comments."'");
//$query = sprintf("INSERT INTO content6 SET name='%s', href='%s', comments='%s'",
// mysqli_real_escape_string($nameTopic),
// mysqli_real_escape_string($hrefTopic),
//mysqli_real_escape_string($comments));
mysqli_query($link,$query);
// и добавляем новую строчку в текст письма
$message .= "Новая тема: ".$nameTopic."<br>";
}
}
}
//echo $message.'<hr>';
// отправим письмо
$headers ="Content-type:text/html;charset = utf-8 \r\n";
$headers .= "From: zzz@d0015161.atservers.net \r\n";
mail("xxxxxx@yandex.ru","Новые темы на форуме ",$message);
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
find('h3.threadtitle a') - надо указывать элемент массива find('h3.threadtitle a',0) или проходить циклом
 
  • Like
Реакции: Pavl
Верх Низ