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

Обработка php кода для вывода в html

04.08.2016, 19:58. Показов 1830. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Не подскажите как выйти из ситуации? в базе данных есть ячейка, содержащая текст типа:
Кликните здесь для просмотра всего текста
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;


вопрос в чем... Нужно каждую строку от начало до ; обвесить кодом HTML чтоб получилась таблица типа
Кликните здесь для просмотра всего текста
HTML5
1
<tr><th class="th-standart">основные параметры:</th><th class="th-standart">22см</th></tr>


побывал сделать так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php if (!(empty($this->product->many_teplpk_r))) {  
 
      $str = $this->product->many_teplpk_r;
      $start = '<tr><th class="th-standart">';
      $center = '</th><th class="th-standart">';
      $end ='</th></tr>';
        $newStr;
        $matches = explode(';', $str); $newStr = count($matches)-1; echo $newStr; //количество строк.
        $str = preg_replace('/sss/i',$start ,$str);
        $str = preg_replace('/=/i',$center,$str);
        $str = preg_replace('/;/i',$end,$str);
        
        
        
 }?>
не получилось. может есть у кого идеи?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.08.2016, 19:58
Ответы с готовыми решениями:

Редактор кода для html, css, js, php в qt
Приветствую. Если вкратце, я разрабатываю редактор кода (с подсветкой синтаксиса html, css, php, js и подсказками к этим языкам) на qt. ...

В файл HTML записан HTML код с выполнением скрипта. Сформировать новое окно из этого HTML кода (c php)
php используется для взятия переменной с сервера, поэтому требуется php переменная. Сейчас я поместил файлы в один каталог, просто для...

Обработка события Click, вставка html после генерации и обработка этого кода
Подскажите пожалуйста как заставить работать эту часть кода 18 строка $(&quot;.image&quot;).click(function() { ...

9
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,905
04.08.2016, 20:22
Лучший ответ Сообщение было отмечено tarkasha как решение

Решение

Цитата Сообщение от tarkasha Посмотреть сообщение
не получилось
Что значит не получилось? Какой результат?
Цитата Сообщение от tarkasha Посмотреть сообщение
PHP
1
<?php if (!(empty($this->product->many_teplpk_r))) {
После ! скобки лишние, можно сразу !empty писать.
Цитата Сообщение от tarkasha Посмотреть сообщение
может есть у кого идеи?
Самое глупое, что пришло в голову:

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
$str = 'основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
';
$result_str = '';
 
$params = explode(';', $str);
 
foreach($params as $param)
{
    $values = explode(' = ', $param);
    
    if(!empty($values[1]))
    {
        $result_str .= '<tr><th class="th-standart">';
        $result_str .= $values[0];
        $result_str .= '</th><th class="th-standart">';
        $result_str .= $values[1];
        $result_str .= '</th></tr>';
    }
}
echo '<table>';
echo $result_str;
echo '</table>';
Регулярками наверняка можно проще.
1
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 35
04.08.2016, 20:45  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$str = 'основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
';
$result_str = '';
$params = explode(';', $str);
foreach($params as $param)
{
* * $values = explode(' = ', $param);
if(!empty($values[1]))
* * {
* * * * $result_str .= '<tr><th class="th-standart">';
* * * * $result_str .= $values[0];
* * * * $result_str .= '</th><th class="th-standart">';
* * * * $result_str .= $values[1];
* * * * $result_str .= '</th></tr>';
* * }
}
echo '<table>';
echo $result_str;
echo '</table>';
Регулярками наверняка можно проще.
Отлично! Все работает. Есть вопросик, так, для формальности. при выводе в таблице код распологается один под одним. из за этого таблица разной высоты? Может это я что то не так сделал?
Миниатюры
Обработка php кода для вывода в html  
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,905
04.08.2016, 21:08
tarkasha, а, это видимо переводы строк. Правда странно, почему они отображаются в html.
Заменить это:
PHP
1
2
$result_str .= $values[0];
$result_str .= $values[1];
На:
PHP
1
2
$result_str .= trim($values[0]);
$result_str .= trim($values[1]);
1
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 35
05.08.2016, 15:06  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
$result_str .= trim($values[0]);
$result_str .= trim($values[1]);
Превосходно. Спасибо еще раз! Все работает!

Добавлено через 17 часов 54 минуты
Цитата Сообщение от Jodah Посмотреть сообщение
1
2
$result_str .= trim($values[0]);
$result_str .= trim($values[1]);
Скажите пожалуйста. Я пытаюсь реализовать такую штуку(условие). Если в строке присутствует символ "!" то к этой строке присваивается другой класс.. пытался реализовать так:
Кликните здесь для просмотра всего текста
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
<?php if (!(empty($this->product->many_teplpk_r))) {  
 
      $str = $this->product->many_teplpk_r;
    
    $result_str = '';
    $params = explode(';', $str);
        
        foreach($params as $param)
{
    $findme   = '!';
    $values = explode('=', $param);
    $pos = strpos($mystring, $findme);
    if($pos === true){
        
          $result_str .= '<tr><th class="th-stadddddddddddndart">';
        $result_str .= trim($values[0]);
        $result_str .= '</th><th class="th-standdddddddddddddddddart">';
        $result_str .= trim($values[1]);
        $result_str .= '</th></tr>';
        
    elseif(!empty($values[1]))
    {
        $result_str .= '<tr><th class="th-standart">';
        $result_str .= trim($values[0]);
        $result_str .= '</th><th class="th-standart">';
        $result_str .= trim($values[1]);
        $result_str .= '</th></tr>';
    }
    }
}
echo '<div class="main-table-h">';  
echo '<table>';
echo $result_str;
echo '</table>';
echo '</div>';  
 }?>

в ответ белый экран (((
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,905
05.08.2016, 15:50
Цитата Сообщение от tarkasha Посмотреть сообщение
белый экран
PHP
1
2
error_repoting(E_ALL);
ini_set('display_errors', 'on');
В начало скрипта.
0
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 35
05.08.2016, 15:52  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
error_repoting(E_ALL);
ini_set('display_errors', 'on');
Понял, неправильно расставил фигурные скобки, и перепутал переменную строки. Сейчас страница загружается, но класс не меняется (
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,905
05.08.2016, 16:34
tarkasha, покажите код со всеми изменениями и опишите подробней проблему, какой класс на что хотите заменить и т.п.

Навскидку - этот код странный:
Цитата Сообщение от tarkasha Посмотреть сообщение
PHP
1
2
$pos = strpos($mystring, $findme);
* * if($pos === true){
strpos возвращает число, либо false. А вы сравниваете результат с true. Это условие никогда не выполнится.
0
0 / 0 / 0
Регистрация: 05.12.2014
Сообщений: 35
05.08.2016, 16:47  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
покажите код со всеми изменениями и опишите подробней проблему
Значит вот мой код со всеми изменении.
Кликните здесь для просмотра всего текста
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
<?php if (!(empty($this->product->many_teplpk_r))) {  
 
      $str = $this->product->many_teplpk_r;
    
    $result_str = '';
    $params = explode(';', $str);
        
        foreach($params as $param)
{
    $findme   = '!';
    $values = explode('=', $param);
    $pos = strpos($str, $findme);
    if($pos === true){
        
          $result_str .= '<tr><th class="th-stadddddddddddndart">';
        $result_str .= trim($values[0]);
        $result_str .= '</th><th class="th-standdddddddddddddddddart">';
        $result_str .= trim($values[1]);
        $result_str .= '</th></tr>';
        
    }elseif(!empty($values[1])) {
    
        $result_str .= '<tr><th class="th-standart">';
        $result_str .= trim($values[0]);
        $result_str .= '</th><th class="th-standart">';
        $result_str .= trim($values[1]);
        $result_str .= '</th></tr>';
    }
    
}
echo '<div class="main-table-h">';  
echo '<table>';
echo $result_str;
echo '</table>';
echo '</div>';  
 }?>


Ситуация следующая: Данный код генерирует таблицу из базы данных, данные имеют тип
Кликните здесь для просмотра всего текста
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;

Вы помогли мне эти строки сделать в виде таблицы с помощью первого кода (за что отдельное спасибо) Вывод получается такой (скрин1). Но целая таблица выглядит так (скрин 2) В таблице есть ондавления, такие как "основные характеристики, Размеры " и т д. Суть в том что я пытаюсь зобавить отлечительный знак строчке, которая будет оглавлением части таблицы (например перед строчной ставлю "!"),
Кликните здесь для просмотра всего текста
основные параметры = 22 см;
основные параметры = 22 см;
!основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;
основные параметры = 22 см;

и программа видя этот знак, строчку обкладывает другим кодом html который по другому выделяет. Вот вся суть, надеюсь я понятно написал ))
Миниатюры
Обработка php кода для вывода в html   Обработка php кода для вывода в html  
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,905
05.08.2016, 21:39
tarkasha, ок.

1. Как я сказал выше, === true никогда не выполнится. Нужно делать условие через !== false.

2. Судя по коду, искать нужно не в $str, а в $values[0].

3. Незачем дублировать целый блок кода ради изменения двух строчек:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
foreach($params as $param)
{
    $values = explode('=', $param);
 
    $class1 = strpos($values[0], '!') !== false ? 'th-stadddddddddddndart' : 'th-standart';
    $class2 = strpos($values[0], '!') !== false ? 'th-standdddddddddddddddddart' : 'th-standart';
        
    if(!empty($values[1]))
    {
        $result_str .= '<tr><th class="' . $class1 . '">';
        $result_str .= trim($values[0]);
        $result_str .= '</th><th class="' . $class2 . '">';
        $result_str .= trim($values[1]);
        $result_str .= '</th></tr>';
    }
}
Добавлено через 8 минут
tarkasha, а вообще я бы сделал отдельную функцию getProductParams(), которая получает характеристики и возвращает их в виде массива, с которым затем можно дальше удобно работать, вроде такого:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$arr = [
    0 => [
        'param' => 'Характеристики:',
        'value' => '',
        'is_header' => true
    ],
 
    1 => [
        'param' => 'Производитель:',
        'value' => 'Sony'
        'is_header' => false
    ]
];
Т.е. вы передаёте в функцию id, функция возвращает массив, и по нему вам будет гораздо проще генерировать представление, примерно так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$params = getProductParams($product_id);
 
foreach($params as $param)
{
    $class1 = $param['is_header'] ? 'th-stadddddddddddndart' : 'th-standart';
    $class2 = $param['is_header'] ? 'th-standdddddddddddddddddart' : 'th-standart';
 
    $result_str .= '<tr><th class="' . $class1 . '">';
    $result_str .= $param['param'];
    $result_str .= '</th><th class="' . $class2 . '">';
    $result_str .= $param['value'];
    $result_str .= '</th></tr>';
    
}
Вам же потом будет проще с этим работать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.08.2016, 21:39
Помогаю со студенческими работами здесь

Посоветуйте php класс для парсинга html кода большого обьема
Пробовал класс simple html dom parser но он не справляется с таким обьемом (минимум 1мб данных) :) Хотя класс очень удобный, есть что то...

Передача данных между страницами html (запрос к базе)-> php (обработка) -> html (вывод результата обработки)
Есть два файла: 1) index.php HTML c кнопкой, которая запускает PHP обработчик запроса к базе данных 2) do.php PHP обработчик,...

Сохранение HTML кода в html файл c использыванием php
Я создавал регистрацию на php+html+css . Сделал форму (она под спойлером ) &lt;div id=&quot;comment_form&quot;&gt; ...

Вывести комбинацию HTML и PHP кода за счет PHP
Приветствую всех! Нужно завернуть этот кусок кода в цикл php(вывести на страницу 4 раза) и при этом что бы код php внутри тоже...

Обработка html-кода
Здравствуйте все. Есть некий беспорядочный html-код в виде таблицы(&lt;tr&gt;&lt;td&gt;&quot;текст&quot;&lt;/td&gt;&lt;/tr&gt;), который нужно преобразовать в...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 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 считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru