Разбира се не е наложително PHP да се вгражда в HTML файл, няма никакъв проблем да се създаде PHP файл, който не съдържа никакъв HTML код. Когато обаче се създава уеб приложение, PHP и HTML често се използват заедно в общи файлове. PHP е разработен предимно за използване в уеб пространството за вграждане в HTML файлове като език за създаване на шаблони. Когато в даден файл се влючи
PHP код, той трябва да носи разширение на PHP, обикновено това е .php, но при конфигурирането на уеб сървъра има възможност да се задават и други разширения, като например phtml или php5.
Ето един за PHP код който е вграден в HTML код:
CODE1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <html>
<head>
<title>Тест 1</title>
</head>
<body>
<?php
/* Ако е първи април показваме цитат */
if (date('md') == '0401') {
echo 'A bookstore is one of the onli pieces of evidence we have' .
'that people are still thinking. <i>Jerry Seinfeld</i>';
} else {
echo 'Good morning!';
}
?>
</body>
</html> |
С <?php започва
PHP секцията, вградена в HTML кода, редът ?> приключва PHP секцията. Обърнете внимание, че кодът използва echo за да изпрати резултата. Когато текстът е така прост, конструкциите echo са приемливи. Когато обаче се налага да отпечатвате текстови низове, съдържащи апострофи или кавички, кодът става по сложен. Ако отпечатваният текст в примера беше конструкция с препратка (например <a href='http...'>), примера нямаше да работи правилно, тъй като апострофите в текста щяха да влязат в противоречие с апострофите ограждащи текстовия низ. В такива случаи може, може да прекратите
PHP секцията точно преди извеждането на текста и да започнете нова, точно преди PHP кода, който завършва блока if и започва блока else:
CODE1
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
| <html>
<head>
<title>Тест 2<title>
</head>
<body>
<?php
/* Ако е първи апил показваме цитат */
if (date('md') == '0401') {
?>
A bookstore is one of the onli pieces of evidence
we have that people are still thinking.
<i>Jerry Seinfeld</i>
<?php
} else {
?>
Good morning!
<?php
}
?>
</body>
</html> |
Но този начин за писане на код е доста разхвърлян. С него се нарува един от основните принципи на програмирането; "Отделяй логиката от съдържанието." Следващата "версия" на същия пример съхранява текста в променливи и след това отпечатва тази променлива:
CODE1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <?php
/* Ако е първи апил показваме цитат */
if (date('md') == '0401') {
$greeting = 'A bookstore is one of the onli pieces of.' .
'evidence we have that people are still thinking.' .
'<i>Jerry Seinfeld</i>';
} else {
$greeting = 'Good morning!';
}
?>
</body>
</html> |
Обикновено може да се използва по кратка форма на
PHP тага - <?, вместо <?php. Конфигурационната настройка "short_tags" в php.ini трябва да бъде със стойност "on", но това е така и по подразбиране. Трябва обаче да се внимава при използването на кратки тагове, тъй като не всеки сървър е с включена опция short_tags. Освен това, кратките тагове могат да влязат в конфликт с използването на XML, тъй като <? маркира началото на инструкция за обработка. На разположение е и един допълнителен таг - <?=, който е еквивалент на:
CODE1
2
3
4
5
6
7
8
9
10
11
| <?php echo:
.....
.....
<html>
<head>
<title>Тест 4</title>
</head>
<body>
<?= Sgreeting; ?>
</body>
</html> |
Ако искате да се сигурни, че приложението ви ще може да работи на възможно най-много системи, не трябва да разчитате на кратките тагове, тъй като те може да са деактивирани.