require_once('vendor/autoload.php');
use DiDom\Document;
$document = new Document('https://habr.com/ru/all/', true);
$posts = $document->find('.post');
$last5posts = array_slice($posts, 0, 5);
foreach($last5posts as $post) {
echo $post->html(), "\n";
}
$document->find('.post');
не смог хотя бы тайтлы и урлы собрать. В вебе - работа с БД входит в самую базу и освещается в любой книге/доке уже спустя несколько глав.
Кнопка “Полный текст” должна отображать полное содержимое статьи в модальном окне
на весь экран. На модальном окне должен быть закрывающий его крестик.
4. Обновление списка статей после парсинга, листание страниц и показ полного содержимого
статьи должны происходить без перезагрузки страницы.
так он 1с девом хочет стать, а для этого нужно питон - учить, на пхп - работать.
Вот ты не шаришь вообще.
вот она человеческая натура - помочь влом, но зайти и написать что "куда ты лезешь" ни разу не лень xD
показ полного содержимого
статьи должны происходить без перезагрузки страницы
$post->html(), "\n";
$db=new PDO(бла бла бла подключение к бд);
foreach($last5posts as $post) {
echo $post->html(), "\n";
$prep = $db->prepare('INSERT INTO mytablename (htmlcontent) VALUES(:html)');
$prep->execute(array(":html" => $post->html()));
}
был бы достаточный скил, сдал бы и на питоне.
А теории я начитался на всяких яп, только толку от этого 0.
<h2 class="post__title">
<a href="https://habr.com/ru/company/tuturu/blog/465075/" class="post__title_link">В кабине машиниста поезда</a>
</h2>
$document = new Document(здесь содержимое href, true);
$posts = $document->find('.post__text post__text-html'); // с классами сам смотри.
foreach($last5posts as $post) {
$post = $post->text();
$query_i ="INSERT INTO posts VALUES(NULL, '$post')"; //дбавляем данные в таблицу
$result_i = mysqli_query($link, $query_i) or die("Ошибка " . mysqli_error($link));
}
$query_s ="SELECT post FROM posts"; //извлекаем данные из таблицы
$result_s = mysqli_query($link, $query_s) or die("Ошибка " . mysqli_error($link));
<!DOCTYPE html>
<html lang="ru">
<head>
<title><? echo $title ?></title>
</head>
<body>
<теги бутстрапа>
<? echo $text ?>
</теги бутстрапа>
</body>
require_once('vendor/autoload.php');
require_once 'connection.php';
use DiDom\Document;
$document = new Document('https://habr.com/ru/all/', true);
$posts = $document->find('.post');
$last5posts = array_slice($posts, 0, 5);
$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка " . mysqli_error($link));
foreach($last5posts as $post) {
$post = $post->text();
$query_i ="INSERT INTO posts VALUES(NULL, '$post')"; //дбавляем данные в таблицу
$result_i = mysqli_query($link, $query_i) or die("Ошибка " . mysqli_error($link));
}
$nameValue = $document->find('.post__title_link') - что-то типа этого. Только nameValue не копируй, это я ленюсь имя придумать. На странице 20 статей - вот их и сохрани, дальше не лезь.
$nameValue = $document->find('.post');
Образно представляю что должно получиться, но как это реализовать не очень ясноМне тоже. Идиотские задачи вообще очень тяжело поддаются анализу.
Или сделает с обновлением и скажет, что не знает аджакс, себя покажет
А тупо запилить сайт на вордпрессе особого желания нет
под четким руководством наставника
require_once('vendor/autoload.php');
require_once 'connection.php';
use DiDom\Document;
$document = new Document('https://habr.com/ru/all/', true);
$posts = $document->find('.post');
$last5posts = array_slice($posts, 0, 5);
$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка " . mysqli_error($link));
foreach($last5posts as $post) {
$post = $post->text();
$query_i ="INSERT INTO posts VALUES(NULL, '$post')"; //дбавляем данные в таблицу
$result_i = mysqli_query($link, $query_i) or die("Ошибка " . mysqli_error($link));
}