doublench21
@doublench21

Как правильно оформлять код содержащий как HTML, так и PHP?

Быть может есть хороший форматтер ? То есть такой, который работает сразу с HTML и PHP в одном коде.
  • Вопрос задан
  • 2831 просмотр
Решения вопроса 1
@vdem
Сразу с HTML и PHP работает много кто, да хотя бы встроенный редактор Far Manager работает довольно корректно (с Colorer, естественно). А как правильней оформлять? Правильней всего вид от логики отделять как уже посоветовали. Например, в простейшем случае, в начале файла размещать исключительно PHP код, делающий нужные телодвижения для получения и обработки данных и перевода их в вид, готовый к выводу на страницу (включая вызовы htmlspecialchars()), а за ним - исключительно HTML, со включениями PHP лишь для вывода значений и простейших операторов if (без громоздких условий, все вычисления должны идти в начале, где код PHP) и for/foreach.
<?php
$users = UsersModel::getAllUsers();
$usersPrepared = [];
foreach($users as $user) {
    $usersPrepared[] = array(
        'id' => $user->id,
        'name' => htmlspecialchars(sprintf('%, %', $user->lastName, $user->firstName)),
        ...
    );
}
?>
<!DOCTYPE html>
<html>
<head>...</head>
<body>
<table>
<?php foreach($usersPrepared as $user) { ?>
    <tr data-id="<?php echo $user['id'] ?>">
        <td><?php echo $user['name'] ?></td>
    </tr>
<?php } ?>
</table>
</body>
</html>

Как-то так.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
doublench21
@doublench21 Автор вопроса
На данном примере ?
<code><html>
	<?php

if (!mysql_connect("localhost", "root", "")) // Ошибка исправляется доб. в php.ini "error_reporting = E_ALL & ~E_DEPRECATED"
    echo "ERROR! ".mysql_errno()." ".mysql_error()."\n";
    
mysql_select_db("students");   

mysql_set_charset("utf8");

$q = mysql_query ("SELECT * FROM `students` ORDER BY `students`.`id`")  
    or die("Invalid query: ".mysql_errno()." ".mysql_error()."\n");
    
$num_rows = mysql_num_rows($q);   // кол-во строк
$num_fields = mysql_num_fields($q); // кол-во столбцов

$a=mysql_result($q, $_GET['id'], 0);
if (!isset($_GET['id']) || !isset($a))
    die('User not find!');

?>
		<head>
			<title>
				<?=

mysql_result($q, $_GET['id'], 1);

?>
			</title>
			<meta charset="utf-8" />
			<meta name="description" content="... , <?=

mysql_result($q, $_GET['id'], 1);

?>" />
		</head>
		<body>
			<h1>
				...
			</h1>
			<h2>
				Студент:
				<?=

mysql_result($q, $_GET['id'], 1);

?>
			</h2>
            <h3>Возраст:</h3>
            <p>
               <?= mysql_result($q, $_GET['id'], 2); ?>
            </p>
			<h3>
				Описание:
			</h3>
			<p>
				<?= mysql_result($q, $_GET['id'], 3); ?>
			</p>
			
				
				<p><a href="students.php">Вернуться назад к Списку ...</a></p>
		</body>

</html></code>
Ответ написан
Комментировать
korovnikiss
@korovnikiss
Frontend
Для этого существует отделение логики приложения от его внешнего вида.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы