Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 34

Генерация страниц с одним Тегом средствами php

08.12.2016, 22:03. Показов 856. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу найти нужную информацию, или просто не знаю как правильно сформулировать вопрос. Есть необходимость сделать на сайте Теги. По замыслу это работает так - на каждой html странице есть определённый тег (или как это правильно назвать, я не знаю, в php знаю только основы и кое какие правила) и при вызове этого тега (нажатии на него) должна генерироваться страница со списком ссылок на страницы содержащие аналогичный тег. Есть ли вариант сделать это с минимальным использование кода, без шаблонизации или прикручивания отдельного поисковика, или при использовании максимально примитивного поисковика для этих целей. Будут рад любым советам. Естественно хостинг поддерживает php и MySQL
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2016, 22:03
Ответы с готовыми решениями:

Генерация документов средствами PHP
Здравствуйте дорогие форумчане. Вопрос как на PHP генерировать текстовые документы автоматически? То есть я заполнил форму добавления...

Генерация изображения средствами PHP
Здравствуйте, пытаюсь сгенирировать изображение с русским текстом но ничего не получается ... Помогите пожалуйста. ...

Генерация страниц в php
Не могу найти толковое описание как генерировать страницы в php. есть новостной сайт(точнее его наработка), создал ленту новостей на...

11
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
08.12.2016, 22:56
Это даже не совсем поиск, а просто список по тегу. Делается практически также, как список по любой др. характеристике.

Добавлено через 6 минут
Если на странице может быть только один тег, то это вообще элементарная группировка получается.
1
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 34
08.12.2016, 23:36  [ТС]
На странице должно быть несколько тегов. Мой уровень знания php очень мал, но насколько я знаю вывод по характеристике вроде производится на одной странице (var_dump() ?). Спокойно могут быть абсолютно не прав. Может есть примеры использования. Просто я обшарил различные форумы и статьи. Либо я опять же не правильно формулирую запрос в поисковике, либо я так и не нашёл нормальной статьи как это реализовать. Ещё проблема в том, что сайт изначально делался на html, то есть скрипт необходимо вставить в старую страницу. Не хочу ставить CMS, мне нужно чтобы сайт был статичный, до вызова скрипта (надеюсь я не напорол чуши и не выгляжу как дурак)
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
09.12.2016, 00:49
Hoseinrike, даже не знаю, чем помочь. Задача простая, требует минимума знаний. Начните с основ PHP, изучите роутинг с использованием GET-параметров, затем основы MySQL. За несколько дней можно осилить.
1
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 34
09.12.2016, 01:20  [ТС]
Эх. Я то основы знаю, просто нужно от чего-то оттолкнуться, пример там, или примерно что прочитать. После работы башка плохо варит. Мне хотя бы знать как правильно это дело загуглить. Когда пишешь "теги php", "реализация тегов php" или что-то в это роде - советуют сделать поисковик по "тегам" или использовать шаблонизаторы. Голова уже пухнет, не знаю от чего оттолкнуться
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
09.12.2016, 10:13
Цитата Сообщение от Hoseinrike Посмотреть сообщение
нужно от чего-то оттолкнуться, пример там, или примерно что прочитать
Я уже ответил, роутинг и основы MySQL.

В БД создаёте таблицу articles (статьи) и таблицу articles_tags (теги статей). И когда юзер тыкает по тегу, получаете из БД и выводите все статьи с этим тегом.

Добавлено через 12 минут
Hoseinrike, набросал пример.

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?
function getTags()
{
    return [
        ['name' => 'Cats', 'url' => 'cats'],
        ['name' => 'Dogs', 'url' => 'dogs'],
        ['name' => 'Politic', 'url' => 'politic'],
    ];
}
 
function getTagArticles($tag)
{
    if($tag === 'cats')
        return [
            ['name' => 'Cat 1', 'url' => 'cat1'],
            ['name' => 'Cat 2', 'url' => 'cat2'],
            ['name' => 'Cat 3', 'url' => 'cat3'],
        ];
    
    if($tag === 'dogs')
        return [
            ['name' => 'Dog 1', 'url' => 'dog1'],
            ['name' => 'Dog 2', 'url' => 'dog2'],
            ['name' => 'Dog 3', 'url' => 'dog3'],
        ];
 
    if($tag === 'politic')
        return [
            ['name' => 'Politic 1', 'url' => 'pol1'],
            ['name' => 'Politic 2', 'url' => 'pol2'],
            ['name' => 'Politic 3', 'url' => 'pol3'],
        ];
}
?>
<h2>Теги</h2>
<div>
<? foreach(getTags() as $tag): ?>
    <a href="?tag=<?=$tag['url']?>"><?=$tag['name']?></a>
<? endforeach; ?>
</div>
 
<? if(isset($_GET['tag'])): ?>
    <h2>Найденные статьи</h2>
    <? foreach(getTagArticles($_GET['tag']) as $article): ?>
        <a href="?article=<?=$article['url']?>"><?=$article['name']?></a>
    <? endforeach; ?>
<? endif; ?>
 
<? if(isset($_GET['article'])): ?>
    <h2>Отображение статьи с URL <?=$_GET['article']?></h2>
<? endif; ?>
Функции getTags и getTagArticles нужно переделать, чтобы данные брались из БД.
1
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
09.12.2016, 13:22
Hoseinrike, всегда отталкивайтесь исключительно от здравого смыла, иначе и под поезд недолго залететь.

Сделайте таблицу тегов с полями id и name и связующую таблицу с полями tag_id и page_id (просто id использовать не обязательно, достаточно перваые два поля сделать групповым ключом). В запросе на выбор страниц по тегу объедините эти две таблицы или сделайте два послед. запроса. Также присоедините нужные поля таблицы страниц, если для формирования списка вам нужны доп. характеристики страниц помимо id (например, слаг, название или аннотация).
1
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 34
09.12.2016, 14:04  [ТС]
Спасибо. Буду хотя бы с этого начинать
0
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 34
10.12.2016, 16:27  [ТС]
Jodah, почитав основы MySQL и про роутинг, а ещё найдя примеры использования данного метода - я либо что-то не понял, либо всё понял не так. Получается если я буду этим методом пользоваться, то мне придётся вносить в таблицу базы каждую страницу и к каждой странице в этой таблице присваивать ид тега. У меня больше 2500 страниц, где должно быть от 1го до 15 тегов. Это же адская порнография будет. Если я не прав - поправите. Просто, я думал это будет работать как в поисковике - раз в сутки крон будет врубать индексацию и добавлять в бд нужные страницы
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
10.12.2016, 19:05
id будет у отдельно взятой страницы. В одном из полей записи вы будете хранить все полотно тегов основного содержимого страницы.

Добавлять страницы, добавляя соотв. записи, можете как вручную, так и при помощи спец. скрипта – его еще нужно написать.

Добавлено через 10 минут
Эээ... Если речь о тэгах в том смысле, который мы обсуждали изначально, то да, обычно эти теги добавляются вручную, хотя опять-таки можно написать скрипт, делающий это автоматически, например по списку ключевых слов для каждой отдельно взятой страницы.

Числовые id в БД обычно формируются автоматически. Текст или слаг тега нужно сделать уникальным индексом, чтобы исключить риск многократного добавления одного и того же тега. К отдельно взятой странице вы тоже один и тот же тег несколько раз не добавите.
1
0 / 0 / 0
Регистрация: 08.05.2016
Сообщений: 34
10.12.2016, 20:14  [ТС]
miketomlin, значит я всё правильно понял. Спасибо большое
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
10.12.2016, 20:29
Цитата Сообщение от Hoseinrike Посмотреть сообщение
Получается если я буду этим методом пользоваться, то мне придётся вносить в таблицу базы каждую страницу и к каждой странице в этой таблице присваивать ид тега.
Да.
Цитата Сообщение от Hoseinrike Посмотреть сообщение
У меня больше 2500 страниц, где должно быть от 1го до 15 тегов. Это же адская порнография будет.
Адская порнография - это 2500 html файлов. А когда всё это дело лежит в БД - это классно и комфортно.

Как сказали выше (хотя не знаю, это имелось ввиду или нет), можно написать скрипт, который разово пройдётся по всем html файлам и перегонит весь контент в БД (статья + теги + всё остальное). И после этого можно будет отказаться от html файлов, заменив их на один пхпшный.

Цитата Сообщение от Hoseinrike Посмотреть сообщение
Просто, я думал это будет работать как в поисковике - раз в сутки крон будет врубать индексацию и добавлять в бд нужные страницы
Работать будет так, как вы напишете. Возможен и такой вариант, но это придумывание себе лишнего геморроя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2016, 20:29
Помогаю со студенческими работами здесь

Генерация таблицы средствами PHP, как?
Здравствуйте товарищи! Сложилась такая проблема. Есть PHP код который в цикле возвращает информацию из массива и записывает в...

генерация страниц на сайте php
Необходимо, чтобы на странице новости выводились записи таблицы, как это сделать правильно, код по требованию приложу. Заранее спасибо!

Генерация страниц по шаблону php из БД MySQL
Приветствую, уважаемые хакеры. Дабы не занимать Вашего времени прошу ссылку на пост, в котором рассмотрен вопрос создания навигации по...

Чтение xls php-парсером и вставка на страницу скриптом, тегом {col1stolb1}
Подскажите: в задании сказано, что нужно php-парсером прочитать данные с xls, а затем расположить их на странице с помощью скрипта, тегом...

Генерация Excel файла средствами
Доброго времени суток! Имеется следующий код: Excel.Application excelApp = new Excel.Application(); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru