Добрый день! Делаю парсинг сайта. Скрипт нормально работает, за исключением одного момента. В базе данных есть поле 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: [email protected] \r\n";mail("[email protected]","Новые темы на форуме ",$message);
Если написать echo $comments, то выводится строка со множеством чисел - то есть, количество комментариев вместо самих комментариев... Правильно ли я создаю саму строку?: PHP: $comments = pq($topic)->find('ul.threadstats a')->text(); Небольшой фрагмент исходного кода страницы, исходя из которого создаю эту строку: PHP: <!-- threadstats --> <ul class="threadstats td alt" title=""> <li>Ответов: <a href="misc.php?do=whoposted&t=2845" onclick="who(2845); return false;" class="understate">89</a></li> <li>Просмотров: 100,477</li> <li class="hidden">Рейтинг5 / 5</li> </ul>