Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
-4 / 1 / 0
Регистрация: 14.06.2022
Сообщений: 33

Как адаптировать шаблон php и php внутри html

24.02.2023, 09:39. Показов 1726. Ответов 37
Метки html, php (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с проблемой неработающего кода php если тот захватывается по ссылке из другого html/php. Php шаблон подключается в index и захватывает c собой второй - allcontent.html, в котором и не работает php. Возможно ли соединить это всё вместе оставив только захват html без php? В php я новичок, но это очень важно для меня сейчас, так как от этого зависит работа всего моего сайта. Помогите пожалуйста.
PHP
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
<<!--allcontent.html-->>
<<!--неработающий код-->>
<?php
$result = R::getAll("SELECT a.id, a.author, a.title, m.name category_name FROM articles a LEFT JOIN menu m ON m.id = a.cat ORDER BY a.id DESC");
$groups = [];
 
foreach ($result as $row) {
    $groups[$row['category_name']][] = $item;
}
?>
 
<ul class="hs owl-carousel carousel">
        [_while]
        <?php foreach($groups as $category => $articles): ?>
        <h2><?=$category?></h2>
        <?php foreach($articles as $article): ?>
        <li class="hs__item item" onclick="location.href='main.php';"> 
          <div class="hs__item__image__wrapper"><img class="hs__item__image" src="https://picsum.photos/id/112/300/300" alt=""/></div>
          <div class="hs__item__description"><span class="hs__item__title">[_title]</span><span class="hs__item__subtitle">[_author]</span><span><a style="font-weight:100;" href="php/eddform.php?page=edd_content&id=[_id]">ред.</a><a style="font-weight:100;" href="?page=edd_content&del_post=[_id]"><img src="img/del.jpg" border="0px"></a></span></div>
        </li>
        <?php endforeach ?>
      <?php endforeach ?>
        [_while]
        
      </ul>
<ul class="hs owl-carousel carousel">
        [_while]
        <?php foreach($groups as $category => $articles): ?>
        <h2><?=$category?></h2>
          <?php foreach($articles as $article): ?>
        <li class="hs__item item"> 
          <div class="hs__item__image__wrapper"><img class="hs__item__image" src="https://picsum.photos/id/103/300/300" alt=""/></div>
          <div class="hs__item__description"><span class="hs__item__title">[_title]</span><span class="hs__item__subtitle">[_author]</span><span><a style="font-weight:100;" href="php/eddform.php?page=edd_content&id=[_id]">ред.</a><a style="font-weight:100;" href="?page=edd_content&del_post=[_id]"><img src="img/del.jpg" border="0px"></a></span></div>
        </li>
        <?php endforeach ?>
      <?php endforeach ?>
        [_while]
      </ul>
PHP
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
function allcontent()//Функция вывода списка постов
{
$sm_read = file("php/templates/allcontent.html");//...подключаем шаблон
$sm_read = implode("",$sm_read);//функция file() возвращаем массив, поэтому склеиваем его
preg_match("/\[_while\](.*?)\[_while\]/s",$sm_read,$tamp_while);//Находим в шаблоне тут часть, которую будет ду вайлить
 
//Выводим из базы данных посты
$result_index = R::getAll("SELECT id,author,title,cat FROM articles ORDER BY id DESC");
 
foreach ($result_index as $myrow_index)
{
    if($myrow_index != "")//Проверяем есть ли в базе данных записи
    {//Если есть...
        if($myrow_index['cat'] != 0)
        {
            $result_cat = R::getAll("SELECT name FROM menu WHERE id='$myrow_index[cat]'");//Выводим из базы имя пункта
            foreach ($result_cat as $myrow_cat)
            {
                $name_cat = $myrow_cat['name'];
            }
        }
        else $name_cat = "Нет категории";
 
                $copy_tamp = $tamp_while[1];//Сохраняем ту часть которая будет повторяться в отдельную переменную
                //Делаем замены код-слов
                $copy_tamp = str_replace("[_title]",$myrow_index['title'],$copy_tamp);//Название поста
                $copy_tamp = str_replace("[_author]",$myrow_index['author'],$copy_tamp);//Автор
                $copy_tamp = str_replace("[_id]",$myrow_index['id'],$copy_tamp);//ID постов
                $copy_tamp = str_replace("[_cat]",$name_cat,$copy_tamp);//Имя категории
 
 
                $list .= $copy_tamp;//Объединяем результат в одну переменную
    }
    else $sm_read = "<p align='center'>Нет пользователей</p>";//Если записей нет, то вывести это сообщение
}
    
$sm_read = preg_replace("/\[_while\].*?\[_while\]/s",$list,$sm_read);//Вставляем в шаблон список постов
return $sm_read;//Выводим с генерированный html код
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.02.2023, 09:39
Ответы с готовыми решениями:

Php, html, template. Как подключить шаблон?!
Доброго времени суток, у меня есть &quot;сайт&quot; - несколько php - файлов, как мне подключить шаблон?! *.template - файл.

UCOZ: Как в шаблон сайта подключить HTML, а не PHP страницы
Возможно ли как-то без PHP это реализовать? Просто сайт на UCOZ'е, а там PHP не поддерживается... :( Заранее спасибо :) ...

Html и PHP... Не пойму как считать данные с html форм в PHP.
Прошу не ругаться. Но что то я не пойму. Ну например в PHP указывают файл: &lt;?php $file = 'example.txt'; ?&gt; а что надо...

37
-4 / 1 / 0
Регистрация: 14.06.2022
Сообщений: 33
25.02.2023, 10:16  [ТС]
Студворк — интернет-сервис помощи студентам
POSE, вот смотрите. Я даже не беру в расчет шаблонизатор. Хотя бы просто правильно вывести категории по ul. Мне предложили использовать примерно вот это, но это не правильно, потому что подразумевает вывода ВСЕХ категорий в один <ul></ul> когда необходимо 1 ul=1 категория
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$result_index = R::getAll("SELECT a.id, a.author, a.title, m.name category_name FROM articles a LEFT JOIN menu m ON m.id = a.cat ORDER BY a.id DESC");
$groups = [];
 
foreach ($result_index as $myrow_index) {
  // выводим категории и распределям каждую по отдельному для неё диву
    $groups[$myrow_index['category_name']][] = $item;
 
  // выводим из базы списки статей в зависимости категории
    $title = str_replace("[_title]",$myrow_index['title'],$title);//Название поста
    $author = str_replace("[_author]",$myrow_index['author'],$author);//Автор
    $id = str_replace("[_id]",$myrow_index['id'],$id);//ID постов
}
?>
PHP
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
<ul class="hs owl-carousel carousel">
      <?php foreach($groups as $category => $articles): ?>
        <h2><?=$category?></h2>
        <?php foreach($articles as $article): ?>
        <li class="hs__item item" onclick="location.href='main.php';"> 
          <div class="hs__item__image__wrapper"><img class="hs__item__image" src="https://picsum.photos/id/112/300/300" alt=""/></div>
          <div class="hs__item__description"><span class="hs__item__title"><?=$title?></span><span class="hs__item__subtitle"><?=$author?></span><span><a style="font-weight:100;" href="php/eddform.php?page=edd_content&id=[_id]">ред.</a><a style="font-weight:100;" href="?page=edd_content&del_post=[_id]"><img src="img/del.jpg" border="0px"></a></span></div>
        </li>
        <?php endforeach ?>
      <?php endforeach ?>
      </ul>
 
<ul class="hs owl-carousel carousel">
      <?php foreach($groups as $category => $articles): ?>
        <h2><?=$category?></h2>
        <?php foreach($articles as $article): ?>
        <li class="hs__item item"> 
          <div class="hs__item__image__wrapper"><img class="hs__item__image" src="https://picsum.photos/id/103/300/300" alt=""/></div>
          <div class="hs__item__description"><span class="hs__item__title"><?=$title?></span><span class="hs__item__subtitle"><?=$author?></span><span><a style="font-weight:100;" href="php/eddform.php?page=edd_content&id=[_id]">ред.</a><a style="font-weight:100;" href="?page=edd_content&del_post=[_id]"><img src="img/del.jpg" border="0px"></a></span></div>
        </li>
        <?php endforeach ?>
      <?php endforeach ?>
      </ul>
 
<ul class="hs owl-carousel carousel">
      <?php foreach($groups as $category => $articles): ?>
        <h2><?=$category?></h2>
        <?php foreach($articles as $article): ?>
        <li class="hs__item item"> 
          <div class="hs__item__image__wrapper"><img class="hs__item__image" src="https://picsum.photos/id/104/300/300" alt=""/></div>
          <div class="hs__item__description"><span class="hs__item__title"><?=$title?></span><span class="hs__item__subtitle"><?=$author?></span></div>
        </li>
        <?php endforeach ?>
      <?php endforeach ?>
0
Заблокирован
25.02.2023, 11:27
Ra1s, я уже писал выше, но ответа не дождался. Откуда взялась переменная $item? Вот здесь:
Цитата Сообщение от Ra1s Посмотреть сообщение
foreach ($result_index as $myrow_index) {
  // выводим категории и распределям каждую по отдельному для неё диву
    $groups[$myrow_index['category_name']][] = $item;
Я даже красным цветом выделяю уже второй раз. Если надо в массив $groups добавить все существующие категории, то это делается, как я уже показывал ранее. Кстати, комменты тоже неправильные. Там никакого вывода категорий нет. В той конкретной строке.
А что бы категории не повторялись, следует делать вот так:
PHP
1
2
3
4
5
6
$groups = [];
foreach ($result_index as $myrow_index) {
    if(!in_array($myrow_index['category_name'], $groups)) {
        $groups[] = $myrow_index['category_name'];
    }
}
Добавлено через 5 минут
Цитата Сообщение от Ra1s Посмотреть сообщение
m.name , category_name
Вот здесь вероятно запятая пропущена, если я правильно понял. Непонятно как это вообще работает.

Добавлено через 9 минут
И вот еще. Если сразу не получается. Делаешь остановки в выполнении скрипта и проверяешь то, что уже получилось... или должно получиться. И так последовательно шаг за шагом.
PHP
1
2
3
4
5
6
7
8
$groups = [];
foreach ($result_index as $myrow_index) {
    if(!in_array($myrow_index['category_name'], $groups)) {
        $groups[] = $myrow_index['category_name'];
    }
}
print_r($groups);
die(); //остановили выполнение. Если группы отобразились правильно - двигаемся дальше.
0
Эксперт PHP
 Аватар для liris
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,849
25.02.2023, 11:32
Я вам приведу пример. На моих тестовых данных. Поразбирайтесь как он работает. И внесите коррективы в свой код.

PHP
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
$articles = [
    'auto' => [
        [
            'title' => 'bmw',
            'content' => 'текст про bmw',
        ],
        [
            'title' => 'audi',
            'content' => 'текст про audi',
        ],
        [
            'title' => 'toyota',
            'content' => 'текст про toyota',
        ],
    ],
    'moto' => [
        [
            'title' => 'honda',
            'content' => 'текст про honda',
        ],
        [
            'title' => 'yamaha',
            'content' => 'текст про yamaha',
        ],
        [
            'title' => 'suzuki',
            'content' => 'текст про suzuki',
        ],
    ],
];
 
 
foreach ($articles as $name => $category) {
    echo '<div class="carousel">';
    echo '<h1> Категория: ' . $name . '</h1>';
    foreach ($category as $article) {
        echo '<h2>' . $article['title'] . '</h2>';
        echo '<p>' . $article['content'] . '</p>';
    }
    echo '</div>';
}
Можно выполнить в любой песочнице, например http://phptester.net/
0
-4 / 1 / 0
Регистрация: 14.06.2022
Сообщений: 33
25.02.2023, 11:38  [ТС]
POSE, попробовал, не работает)
Вложения
Тип файла: rar projectstudy.rar (139.7 Кб, 3 просмотров)
0
-4 / 1 / 0
Регистрация: 14.06.2022
Сообщений: 33
25.02.2023, 11:57  [ТС]
liris, сейчас попробую

Добавлено через 15 минут
liris, просмотрел и сравнил. Мне уже несколько вариантов массива предложили и ни один не заработал. Может быть дело в запросе? или R::getAll orm redbean

POSE, есть предположение что = $item; это подмассив. Без него не работает кстати.

m.name , category_name
как ни странно, с запятой не работает ничего)
0
Заблокирован
25.02.2023, 12:01
Цитата Сообщение от Ra1s Посмотреть сообщение
POSE, попробовал, не работает)
А как же оно заработает, если там ничего не поменялось) Всё... я больше в эту тему ни ногой
Вот покажу скрин, где даже редактор подчеркивает твою переменную, которая непонятно откуда взялась. Смотри седьмую строку.
И еще. Желательно заменить <? на <?php
Миниатюры
Как адаптировать шаблон php и php внутри html  
0
-4 / 1 / 0
Регистрация: 14.06.2022
Сообщений: 33
25.02.2023, 12:06  [ТС]
POSE, я отправил изначальный вариант, чтобы показать что работает. Ваш вариант не выдает ошибок и полностью убирает все категории. Остается пустая страница. По скрину значит проблема в неправильном запросе и запятая там не решает вопрос
0
Эксперт PHP
 Аватар для liris
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,849
25.02.2023, 13:02
Цитата Сообщение от Ra1s Посмотреть сообщение
Может быть дело в запросе?
Дело в вас. Вы не разобрались. Мы не будем играть в эту игру, где вам что-то предлагают, а вы просто ждете пока все заработает. Пробуйте. Смотрите, что у вас в переменных. Какая у вас структура массива? Разбирайтесь.

Цитата Сообщение от Ra1s Посмотреть сообщение
есть предположение что = $item; это подмассив
Такие предположения должны вами проверяться и превращаться в утверждения. У вас ведь код перед глазами. Возьмите эту переменную и посмотрите что в ней. Получите четкое и внятное представление. И возвращайтесь к нам с конкретными вопросами типа "у меня есть массив такого формата, как мне вытащить из него вот эту часть?". Или "у меня есть такой список, как из него построить такую-то структуру?".
0
Заблокирован
25.02.2023, 13:29
Ra1s, вставьте в файл index.php вот эти строки
PHP
1
2
ini_set("display_errors", 1);
error_reporting(E_ALL);
Я даже скрин вышлю, что бы понятно было.
Миниатюры
Как адаптировать шаблон php и php внутри html  
0
Заблокирован
25.02.2023, 13:42
Кстати, а почему <html lang="en">, а в описании Научные статьи на медицинскую тематику?
Ни какого диссонанса не вызывает?
0
1460 / 1013 / 232
Регистрация: 01.10.2018
Сообщений: 3,941
25.02.2023, 13:44
Цитата Сообщение от Ra1s Посмотреть сообщение
вы бы лучше мне помогли чем спорить)) Потому что ничего из того что вы сказали так и не помогло мне
Вы проигнорировали мой основной совет в другой теме. С вами пытались говорить по существу, но на данном этапе это бессмысленно.
0
Заблокирован
25.02.2023, 13:47
del
0
-4 / 1 / 0
Регистрация: 14.06.2022
Сообщений: 33
25.02.2023, 13:48  [ТС]
liris, POSE, estic, да я понял уже что проще будет самому во всем разобраться чем у Вас спрашивать. Спасибо за потраченное время
0
Заблокирован
25.02.2023, 13:50
Нормально. Мы еще и виноваты
Спасибо, рассмешил
0
Эксперт PHP
 Аватар для liris
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,849
25.02.2023, 13:59
Цитата Сообщение от Ra1s Посмотреть сообщение
да я понял уже что проще будет самому во всем разобраться чем у Вас спрашивать
Вы рассчитывали на что-то иное? Что мы за вас разберемся в вашей проблеме (в которой вы разбираться не хотите) и предложим готовое решение?
Ну тогда извините, что не оправдали ваших надежд.
0
1460 / 1013 / 232
Регистрация: 01.10.2018
Сообщений: 3,941
25.02.2023, 14:09
Цитата Сообщение от liris Посмотреть сообщение
в которой вы разбираться не хотите
Очевидно, автор хочет, но не может. Видимо, это рабочий сайт (или заготовка для него), который кое-как "сколочен" кем-то другим.

Добавлено через 4 минуты
Или просто бездумное обучение на каком-то странном примере, "спущенном сверху".
0
Эксперт PHP
 Аватар для liris
5515 / 1198 / 164
Регистрация: 16.01.2023
Сообщений: 2,849
25.02.2023, 14:24
Цитата Сообщение от estic Посмотреть сообщение
Видимо, это рабочий сайт (или заготовка для него), который кое-как "сколочен" кем-то другим.
Я думаю, что этот вариант. Что это нечто написано задолго до него. И сейчас ему (или его руководителю) нужно внести изменения. Нашли того, кто "соображает" и надо вносить изменения. В целом, для нашей страны - вполне распространенная практика. Сам участвовал неоднократно.

Цитата Сообщение от estic Посмотреть сообщение
Очевидно, автор хочет, но не может.
Вопрос в том, чего автор хочет. Если он хочет просто чтобы сайт работал как надо и не хочет в этом пытаться разбираться - я бы послал к фрилансерам (но не буду, это противоречит правилам форума). Сам я в чужой гоVнокод точно лезть не хочу, если даже автору это не нужно.

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

Добавлено через 3 минуты
Цитата Сообщение от estic Посмотреть сообщение
С вами пытались говорить по существу, но на данном этапе это бессмысленно.
Если говорить по существу, к чему мы пришли ко второй странице? У нас все вводные из первого поста как были, так практически и не дополнились деталями.

Структуры массива я не увидел (поднимать у себя сайт и разворачивать БД автора, чтобы просто посмотреть как его фреймворк выдает ему массив - я точно не буду). Ошибок мы не увидели. Вся реакция автора - "попробовал, не помогло". Что пробовал? Что получилось? Что изменилось? Какой вывод был? Какой стал? Что в переменных? Где ответы на все вопросы, заданные желающими помочь?
0
1460 / 1013 / 232
Регистрация: 01.10.2018
Сообщений: 3,941
25.02.2023, 14:45
Цитата Сообщение от liris Посмотреть сообщение
я бы послал к фрилансерам (но не буду, это противоречит правилам форума)
Если человек не в состоянии этого понять, можно и подсказать один раз: Как вывести из БД список, поделить его на категории и разместить в разных div - иногда помогает Но в данном случае это тоже оказалось бесполезно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.02.2023, 14:45

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

PHP внутри HTML
Помогите..мозг сейчас вспухнет, как только не экранировал, все равно нормально не работает.:umnik: &lt;ul...

Шаблон html для скрипта php
Ребята подскажите пожалуйста как правильно натянуть шаблон html на готовый скрипт php.Может есть где почитать как это делается...Или кто то...

Как, использующие php, сайты имеют расширение страниц html, но не php?
Сабж. Собственно говоря, сайты наверняка построены с использованием PHP, но при этом страница может иметь расширение html. Либо страница...

Php+html!? Как в php файле вывести input type='button' через echo!?
ну собственно говоря я все спросил в заголовке...


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

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru