PHP.mk документација

PHP и HTML

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

faq.html.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека faq.html.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
PHP и HTML

Референца за `faq.html.php` со подобрена типографија и навигација.

faq.html.php

PHP и HTML

PHP и HTML многу често соработуваат: PHP може да генерира HTML, а HTML може да предава информации на PHP. Пред да ги прочитате овие ЧПП, важно е да научите како да ги преземете променливи од надворешни извори. Страницата во прирачникот на оваа тема вклучува многу примери.

Какво кодирање/декодирање ми е потребно кога предавам вредност преку форма/URL?

Постојат неколку фази за кои кодирањето е важно. Претпоставувајќи дека имате string $data, што ја содржи низата што сакате да ја предадете на не-кодиран начин, овие се релевантните фази:

  • HTML интерпретација. За да специфицирате случајна низа, вие must ќе ја вклучите во двојни наводници, и htmlspecialchars() целата вредност.

  • URL: URL се состои од неколку делови. Ако сакате вашите податоци да бидат интерпретирани како една ставка, вие must ќе ги кодирате со urlencode().

Пример #1 Скриен HTML елемент од форма

<?php
echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>

Забелешка: , бидејќи е одговорност на прелистувачот да urlencode() $dataподатоците. Сите популарни прелистувачи го прават тоа правилно. Имајте предвид дека ова ќе се случи без оглед на методот (т.е. GET или POST). Ова ќе го забележите само во случај на GET барање, бидејќи POST барањата обично се скриени. urlencode() Пример #2 Податоци за уредување од корисникот

Податоците се прикажуваат во прелистувачот како што е наменето, бидејќи прелистувачот ќе ги интерпретира HTML избегнатите симболи.

<?php
echo "<textarea name='mydata'>\n";
echo
htmlspecialchars($data)."\n";
echo
"</textarea>";
?>

Забелешка: The data is shown in the browser as intended, because the browser will interpret the HTML escaped symbols. Податоците се прикажуваат во прелистувачот како што е предвидено, бидејќи прелистувачот ќе ги толкува HTML-избегнатите симболи.

При поднесување, или преку GET или POST, податоците ќе бидат urlencoded од прелистувачот за пренос, и директно urldecoded од PHP. Така на крајот, не треба да правите никакво urlencoding/urldecoding сами, сето тоа се ракува автоматски.

<?php
echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
urlencode($data)) . '">'."\n";
?>

Забелешка: Пример #3 Во URL urlencode() Всушност, вие симулирате HTML GET барање, затоа е неопходно рачно

Забелешка: податоците. htmlspecialchars() Вие треба даhtmlspecialchars() целиот URL, бидејќи URL се појавува како вредност на HTML атрибут. Во овој случај, прелистувачот прво ќе го од- urlencode()вредноста, а потоа ќе го предаде URL. PHP ќе го разбере URL правилно, бидејќи вие податоците. & Ќе забележите дека &amp;во URL е заменето со need to htmlspecialchars() . Иако повеќето прелистувачи ќе се опорават ако заборавите ова, ова не е секогаш можно. Значи, дури и ако вашиот URL не е динамичен, вие

URL. $foo.x and $foo.y Се обидувам да користам <input type="image"> таг, но $_GET['foo.x'] променливите не се достапни.

исто така не постои. Каде се тие?

<input type="image" src="image.gif" name="foo" />
При поднесување на форма, можно е да се користи слика наместо стандардното копче за поднесување со таг како: foo.x and foo.y.

Кога корисникот ќе кликне некаде на сликата, придружната форма ќе биде предадена на серверот со две дополнителни променливи: foo.x and foo.y Бидејќи foo_x and foo_yби направиле невалидни имиња на променливи во PHP, тие автоматски се претвораат во променливи од надворешни извори. На пример, $_GET['foo_x'].

Забелешка:

При поднесување, или преку GET или POST, податоците ќе бидат urlencoded од прелистувачот за пренос, и директно urldecoded од PHP. Значи, на крајот, не треба да правите никакво urlencoding/urldecoding сами, сè се управува автоматски.

Како да креирам низи во HTML <form>?

За да го добиете вашиот <form> резултат испратен како array до вашата PHP скрипта, именувајте ги елементите <input>, <select> или <textarea> вака:

<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
Забележете ги квадратните загради по името на променливата, тоа го прави низа. Можете да ги групирате елементите во различни низи со доделување на исто име на различни елементи:
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyOtherArray[]" />
<input name="MyOtherArray[]" />
Ова произведува две низи, MyArray и MyOtherArray, кои се испраќаат до PHP скриптата. Исто така е можно да се доделат специфични клучеви на вашите низи:
<input name="AnotherArray[]" />
<input name="AnotherArray[]" />
<input name="AnotherArray[email]" />
<input name="AnotherArray[phone]" />
Низата AnotherArray сега ќе ги содржи клучевите 0, 1, email и phone.

Забелешка:

Наведувањето клучеви на низата е опционално во HTML. Ако не ги наведете клучевите, низата се пополнува по редоследот по кој се појавуваат елементите во формата. Нашиот прв пример ќе содржи клучеви 0, 1, 2 и 3.

Види исто така Функции за низи and Променливи од надворешни извори.

Како да ги добијам сите резултати од HTML ознака select multiple?

Тагот select multiple во HTML конструкција им овозможува на корисниците да изберат повеќе ставки од листа. Овие ставки потоа се предаваат на ракувачот со дејства за формата. Проблемот е што сите се предаваат со исто име на виџет. Односно,

<select name="var" multiple="yes">
Секоја избрана опција ќе пристигне до ракувачот со дејства како:
var=option1
var=option2
var=option3
      
Секоја опција ќе ги презапише содржините на претходната $var променлива. Решението е да се користи PHP функцијата "низа од елемент на форма". Треба да се користи следново:
<select name="var[]" multiple="yes">
Ова му кажува на PHP да третира $var како низа и секое доделување вредност на var[] додава ставка во низата. Првата ставка станува $var[0], следната $var[1], итн. count() функцијата може да се користи за да се одреди колку опции биле избрани, а sort() функцијата може да се користи за сортирање на низата со опции ако е потребно.

Забележете дека ако користите JavaScript [] на името на елементот може да ви предизвика проблеми кога се обидувате да се повикате на елементот по име. Користете го неговиот нумерички ID на елементот на формата наместо тоа, или ставете го името на променливата во единечни наводници и користете го тоа како индекс во низата на елементи, на пример:

variable = document.forms[0].elements['var[]'];
      
Како можам да предадам променлива од Javascript на PHP?

Просторите во имињата на променливите за барање се претвораат во подвлекувања.

Бидејќи Javascript е (обично) технологија од страна на клиентот, а PHP е (обично) технологија од страна на серверот, и бидејќи HTTP е „без состојба“ протокол, двата јазика не можат директно да споделуваат променливи.

Сепак, можно е да се пренесат променливи помеѓу двете. Еден начин да се постигне ова е да се генерира Javascript код со PHP, и да се освежи самиот прелистувач, враќајќи специфични променливи назад до PHP скриптата. Примерот подолу покажува токму како да се направи ова -- тој му овозможува на PHP кодот да ја фати висината и ширината на екранот, нешто што нормално е можно само од страна на клиентот.

<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
// output the geometry variables
echo "Screen width is: ". $_GET['width'] ."<br />\n";
echo
"Screen height is: ". $_GET['height'] ."<br />\n";
} else {
// pass the geometry variables
// (preserve the original query string
// -- post variables will need to handled differently)

echo "<script language='javascript'>\n";
echo
" location.href=\"{$_SERVER['SCRIPT_NAME']}?{$_SERVER['QUERY_STRING']}"
. "&width=\" + screen.width + \"&height=\" + screen.height;\n";
echo
"</script>\n";
exit();
}
?>

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.