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

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

08.12.2016, 22:03. Показов 847. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru