PHP | ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: 16.03.2021
Π ΠΏΡΠΎΡΠ»ΡΡ ΡΠ΅ΠΌΠ°Ρ Π±ΡΠ»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π°Π±ΠΎΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΎ Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² PHP ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ» users.php:
<?php $users = []; if(isset($_GET["users"])){ $users = $_GET["users"]; } echo "Π ΠΌΠ°ΡΡΠΈΠ²Π΅ " . count($users) . " ΡΠ»Π΅ΠΌΠ΅Π½Ρa/ΠΎΠ²<br>"; foreach($users as $user) echo "$user<br>"; ?>
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «users», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² Π·Π°ΠΏΡΠΎΡΠ΅ ΡΠΈΠΏΠ° GET, Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ°ΡΡΠΈΠ². Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½ΠΎ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅.
Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡ ΡΠΊΡΠΈΠΏΡΡ, ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ Π½Π΅ΠΌΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ:
http://localhost/users.php?users[]=Tom&users[]=Bob&users[]=Sam
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΡΠΎΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ², ΠΏΠΎΡΠ»Π΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΠ²Π°Π΄ΡΠ°Π½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ []. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: users[]=Tom
.
Π ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ Π±ΡΠ΄Π΅Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ, ΠΎΡΠ΄Π΅Π»ΡΡΡΡΡ Π°ΠΌΠΏΠ΅ΡΡΠ°Π½Π΄ΠΎΠΌ. Π’Π°ΠΊ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΌΠ°ΡΡΠΈΠ² ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π·Π°ΠΏΡΠΎΡΠ΅ POST ΠΈΠ· ΡΠΎΡΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΊΡΠΈΠΏΡ:
<!DOCTYPE html> <html> <head> <title>METANIT.COM</title> <meta charset="utf-8" /> </head> <body> <?php if(isset($_POST["users"])){ $users = $_POST["users"]; echo "Π ΠΌΠ°ΡΡΠΈΠ²Π΅ " . count($users) . " ΡΠ»Π΅ΠΌΠ΅Π½Ρa/ΠΎΠ²<br>"; foreach($users as $user) echo "$user<br>"; } ?> <h4>Π€ΠΎΡΠΌΠ° Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ </h4> <form method="POST"> <p>User 1: <input type="text" name="users[]" /></p> <p>User 2: <input type="text" name="users[]" /></p> <p>User 3: <input type="text" name="users[]" /></p> <input type="submit" value="ΠΡΠΏΡΠ°Π²ΠΈΡΡ"> </form> </body> </html>
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ
Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π΄Π°Π½Π½ΡΡ
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ° name
Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΎΡΠΌΡ. Π ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ,
ΡΡΠΎ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, Ρ Π°ΡΡΠΈΠ±ΡΡ name
ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ:
<input type="text" name="users[]" />
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ. Π’Π°ΠΊ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ users:
ΠΡΠΈΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΈΠΏΠ°ΠΌ ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° ΡΠΎΡΠΌΡ html.
ΠΡΠΈ ΡΡΠΎΠΌ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π»ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ. Π‘ΠΎΠΎΡΠ²Π΅Π½Π½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°:
$firstUser = $_POST["users"][0]; echo $firstUser;
ΠΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΡΠΎΡΠΌΡ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠ»ΡΡΠΈ:
<!DOCTYPE html> <html> <head> <title>METANIT.COM</title> <meta charset="utf-8" /> </head> <body> <?php if(isset($_POST["users"])){ $firstUser = $_POST["users"]["first"]; $secondUser = $_POST["users"]["second"]; $thirdUser = $_POST["users"]["third"]; echo "$firstUser<br>$secondUser<br>$thirdUser"; } ?> <h4>Π€ΠΎΡΠΌΠ° Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ </h4> <form method="POST"> <p>User 1: <input type="text" name="users[first]" /></p> <p>User 2: <input type="text" name="users[second]" /></p> <p>User 3: <input type="text" name="users[third]" /></p> <input type="submit" value="ΠΡΠΏΡΠ°Π²ΠΈΡΡ"> </form> </body> </html>
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² ΠΌΠ°ΡΡΠΈΠ² ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΊΠ»ΡΡΠΎΠΌ «first»
<input type="text" name="users[first]" />
ΠΠΎΡΡΠΎΠΌΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ:
$firstUser = $_POST["users"]["first"];
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ±ΡΠ΅ΠΊΡΠΎΠ² FormData — ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π²Π΅Π± API
ΠΠ±ΡΠ΅ΠΊΡΒ FormData
Β ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°Π±ΠΎΡ ΠΏΠ°Ρ ΠΊΠ»ΡΡ/Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΡ
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΒ XMLHttpRequest.
Β ΠΠ±ΡΠ΅ΠΊΡΒ FormData
Β ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
ΡΠΎΡΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠ°ΡΒ ΠΊΠ»ΡΡ/Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΡΠΌ. ΠΠ°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΠΎΡΠΌΠ°ΡΠ΅, ΠΊΠ°ΠΊ ΠΈ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ submit()
enctype="multipart/form-data"
.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΒ FormData
, Π½Π°ΠΏΠΎΠ»Π½ΠΈΠ² Π΅Π³ΠΎ Π·Π°ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Β append()
:
var formData = new FormData();
formData.append("username", "Groucho");
formData.append("accountnum", 123456);
formData.append("userfile", fileInputElement.files[0]);
var content = '<a><b>hey!</b></a>';
var blob = new Blob([content], { type: "text/xml"});
formData.append("webmasterfile", blob);
var request = new XMLHttpRequest();
request.open("POST", "http://foo.com/submitform.php");
request.send(formData);
FormData.append()
Β (ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Blob
, File
, ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΠΎΠΉ: Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΈΒ Blob, Π½ΠΈΒ File, ΡΠΎ ΠΎΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² ΡΡΡΠΎΠΊΡ).ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°Β FormData
, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΒ «username», «accountnum», «userfile» ΠΈ «webmasterfile». ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΒ FormData
Β Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°Β send()
XMLHttpRequest
.Β ΠΠΎΠ»Π΅Β «webmasterfile» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°Β Blob
. ΠΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ°Β Blob
Β ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠΌ-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ «ΡΡΡΡΠ΅» Π΄Π°Π½Π½ΡΠ΅. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΊΠ°ΠΊΒ Blob
Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ Π² Π½Π°ΡΠΈΠ²Π½ΠΎΠΌ javascript. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΒ File
Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π°Β Blob
, Π½Π°ΡΠ»Π΅Π΄ΡΡ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΠ‘ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ°Β Blob
Β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅Β Blob() constructor
.ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Β FormDatΠ°
, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π΄Π°Π½Π½ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠΎΡΠΌΡ
) ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ ΡΠΎΡΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Β <form>
FormData:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: FormData Π±ΡΠ΄Π΅ΡΒ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π°ΡΡΠΈΠ±ΡΡ name.
var formData = new FormData(someFormElement);
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
var formElement = document.querySelector("form");
var request = new XMLHttpRequest();
request.open("POST", "submitform.php");
request.send(new FormData(formElement));
ΠΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΠ±ΡΠ΅ΠΊΡΒ FormData
ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Π΄ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
:
var formElement = document.querySelector("form");
var formData = new FormData(formElement);
var request = new XMLHttpRequest();
request. open("POST", "submitform.php");
formData.append("serialnumber", serialNumber++);
request.send(formData);
Π’Π°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠΎΡΠΌΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈΒ FormData.
ΠΡΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠΈΡΠ΅Β
Β Ρ ΡΠΈΠΏΠΎΠΌΒ <input>
file
Π² ΡΠΎΡΠΌΡ.
<form enctype="multipart/form-data" method="post" name="fileinfo"> <label>Your email address:</label> <input type="email" autocomplete="on" autofocus name="userid" placeholder="email" required size="32" maxlength="64" /><br /> <label>Custom file label:</label> <input type="text" name="filelabel" size="12" maxlength="32" /><br /> <label>File to stash:</label> <input type="file" name="file" required /> <input type="submit" value="Stash the file!" /> </form> <div></div>
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
var form = document. forms.namedItem("fileinfo"); form.addEventListener('submit', function(ev) { var oOutput = document.querySelector("div"), oData = new FormData(form); oData.append("CustomField", "This is some extra data"); var oReq = new XMLHttpRequest(); oReq.open("POST", "stash.php", true); oReq.onload = function(oEvent) { if (oReq.status == 200) { oOutput.innerHTML = "Uploaded!"; } else { oOutput.innerHTML = "Error " + oReq.status + " occurred when trying to upload your file.<br \/>"; } }; oReq.send(oData); ev.preventDefault(); }, false);
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ Π΄Π»Ρ ΡΠΎΡΠΌΡ ΡΠΊΠ°Π·Π°Π½ Π°ΡΡΠΈΠ±ΡΡ method
, ΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ
Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π° Π½Π΅ ΠΌΠ΅ΡΠΎΠ΄, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² Π²ΡΠ·ΠΎΠ²Π΅ open()
ΠΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡΒ
ΠΈΠ»ΠΈΒ File
Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ Blob
FormData
:
data.append("myfile", myBlob, "filename. txt");
ΠΠ΅ΡΠΎΠ΄Β
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ 3ΠΉ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊΒ append()
Content-Disposition
ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ. ΠΡΠ»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ (ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠΌΡ «blob».
ΠΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΒ FormData
ΡΒ jQuery:
var fd = new FormData(document.querySelector("form"));
fd.append("CustomField", "This is some extra data");
$.ajax({
url: "stash.php",
type: "POST",
data: fd,
processData: false,
contentType: false
});
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅ΡΠ΅Π· HTML ΡΠΎΡΠΌΡ Π² PHP
ΠΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΡΠΌΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ name.
Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²:
<form>
<input type="text" name="product[name]">
<input type="text" name="product[article]">
<input type="text" name="product[price]">
<input type="submit">
</form>
ΠΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠΎΡΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ $_GET Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
Array
(
[product] => Array
(
[name] => ΠΠ°Π·Π²Π°Π½ΠΈΠ΅
[article] => ΠΡΡΠΈΠΊΡΠ»
[price] => Π¦Π΅Π½Π°
)
)
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΡΠΎΠΉ ΡΠΎΡΠΌΡ:
<?php
if(!empty($_GET['product']))
{
// ΠΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ
foreach($_GET['product'] as $k => $v)
echo "$k : $v <br>";
// ΠΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»Ρ
echo $_GET['product']['name'];
}
?>
<form>
<input type="text" name="product[name]">
<input type="text" name="product[article]">
<input type="text" name="product[price]">
<input type="submit">
</form>
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°. Π Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠ»ΡΡΠΈ ΡΠ»ΠΈ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ :
<form>
<input type="text" name="values[]">
<input type="text" name="values[]">
<input type="text" name="values[]">
<input type="submit">
</form>
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ $_GET Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
Array
(
[values] => Array
(
[0] => ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ 1
[1] => ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ 2
[2] => ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ 3
)
)
ΠΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ :
<form>
<input type="text" name="images[10][title]">
<input type="text" name="images[10][url]">
<input type="text" name="images[11][title]">
<input type="text" name="images[11][url]">
<input type="submit">
</form>
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΡΠΎΠΉ ΡΠΎΡΠΌΡ:
<?php
if(!empty($_GET['images']))
{
foreach($_GET['images'] as $id => $data)
{
echo "ID: $id, ";
echo "Title: $data[title], ";
echo "URL: $data[url] <br>";
}
}
?>
Π ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ Π²ΠΌΠ΅ΡΡΠ΅:
<form>
<input type="text" name="id">
<input type="text" name="product[name]">
<input type="text" name="images[15][title]">
<input type="submit">
</form>
PHP: PHP ΠΈ HTML — Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ:1. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ php-ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ ΠΏΡΡΠΌΡΠΌ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ HTML-ΠΊΠΎΠ΄ΠΎΠΌ) ΠΊΠΎΠ½ΡΡΡΡΠΈΡΡΠ΅Ρ HTML-ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ echo Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π»ΡΠ±ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ»ΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ .
2. ΠΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ php ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ) ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΊΠΎΠ΄Ρ (Π½ΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ°, ΡΠ°Π±ΡΠ»ΡΡΠΈΡ …), ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ HTML (&, <...) ΠΈ Π½Π΅-ASCII (ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΠ΅) ΡΠΈΠΌΠ²ΠΎΠ»Ρ.
3. ΠΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ ASCII, Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ UTF-8, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ° HTML (Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ) *)
4. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ PHP Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ javascript Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. Ρ ΠΏΠΎΠΌΠΎΡΡΡ javascript (ΠΈΠ»ΠΈ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π°ΠΏΡΡΠΌΡΡ Π² HTML)
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°:
Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ PHP-Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ Π² HTML (javascript), ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ Π² Π½ΠΈΡ , Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΡ HTML. ΠΡΠΈ ΡΡΡΠΎΠΊΠΈ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ / ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡΡΡ Π² ΡΡΡΠΎΠΊΠΈ Π½Π΅ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΌΠ½Π΅ ΡΠ°ΠΌΡΠΌ ΠΏΡΠΎΡΡΡΠΌ:
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ PHP Ρ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡΡ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΠ°ΠΉΠ»Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ (ΠΈΠ»ΠΈ ΠΈΠ· ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°):
$ variable = file_get_content (…)
1. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠΉΡΠ΅ Π²ΡΠ΅ Π±Π°ΠΉΡΡ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ΅ΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΠΈΡΡ%
$ variable_e = preg_replace («/ (..) / «,»% $ 1 «, bin2hex ($ variable))
ΠΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Ρ% 1234567890abcdefABCDEF (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,% 61% 63% 0a …) ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π² HTML :
var variable = « Php echo $ variable_e;?>» // ΡΡΠΎ ΠΠ Π²ΡΠ΅ Π»ΡΠ΄ΠΈ
ΠΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ Π΅ΡΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΎ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ: *)
var variable = decodeURIComponent (« Php echo $ variable_e;?>«)
Π’Π΅ΠΏΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
*) Π― ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Ρ ΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ / Π΄Π°Π½Π½ΡΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠΉ ΠΎΡ UTF-8, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ decodeURIComponent ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ ΠΏΡΠΈΡΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΠ»ΡΠ½ΠΎ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅.
ΠΠΠΠΠΠΠΠ: ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ) Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½ ΠΏΡΠΎΡΠΈΠ² Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. Π― Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ (ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ) Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ.
Π.Π‘. ΠΠ»Ρ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄Π°Π½Π½ΡΡ Ρ Π±Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π² ΡΠ°ΠΉΠ» Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ PHP (file_put_content) ΠΈ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ javascript ΡΠ΅ΡΠ΅Π· HTTP-Π·Π°ΠΏΡΠΎΡ.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠ°ΠΊ ΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π― ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ chaeacters Π½ΡΠΆΠ½ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ΅ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡΠ΅ΡΡ ΠΌΠΎΠΈΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π³Π»ΡΠΏΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΡΠ΅
murphy
ΠΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ PHP Π² JSON ΠΈ JavaScript Ρ ΠΏΠΎΠΌΠΎΡΡΡ json_encode
Π€ΡΠ½ΠΊΡΠΈΡ json_encode PHP ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π² Π½Π΅Π΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΡΠΎΠΊΡ JSON, ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ JavaScript. ΠΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΠΌ Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΎΠ΄Π½ΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ.ΠΠ° Π΄ΡΡΠ³ΠΈΡ
ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
json_encode
Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΠΈ ΡΠΊΠ°Π»ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡ json_encode PHP Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ JSON-ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΌΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΠΌ Π·Π΄Π΅ΡΡ Ρ ΡΠΈΡΠ»Π΅Π½Π½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ:
Php
$ ar = array ('ΡΠ±Π»ΠΎΠΊΠΎ', 'Π°ΠΏΠ΅Π»ΡΡΠΈΠ½', 'Π±Π°Π½Π°Π½', 'ΠΊΠ»ΡΠ±Π½ΠΈΠΊΠ°');
ΡΡ
ΠΎ json_encode ($ ar);?>
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ JSON Ρ ΠΏΠΎΠΌΠΎΡΡΡ json_encode
Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ JavaScript ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π§ΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² PHP ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² Π»ΠΈΡΠ΅ΡΠ°Π» ΠΌΠ°ΡΡΠΈΠ²Π° Π² ΡΡΡΠΎΠΊΠ΅ JSON.ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΌΠ°ΡΡΠΈΠ² Π²ΡΠ²ΠΎΠ΄ΠΈΠ»ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ JSON_FORCE_OBJECT
:
Php
ΡΡ
ΠΎ json_encode ($ ar, JSON_FORCE_OBJECT);?>
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΡΠΎΠΊΠ° JSON Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ², ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΡ ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ JSON_PRETTY_PRINT
[1] ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° JSON. ΠΡΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π½ΠΈΠΆΠ΅.
ΠΡΠΈΠΌΠ΅Ρ ΡΠΈΡΠ»Π΅Π½Π½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° PHP Ρ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠ΅ΠΉ, ΡΠΎΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΈΠ· ΡΡΡΠΎΠΊΠΎΠ²ΡΡ
, ΡΠΈΡΠ»ΠΎΠ²ΡΡ
, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈ Π½ΡΠ»Π΅Π²ΡΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π² json_encode
.ΠΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ Π²ΡΠ²ΠΎΠ΄ json_encode
Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ JavaScript, ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π»ΠΈΡΠ΅ΡΠ°Π» ΠΌΠ°ΡΡΠΈΠ²Π°:
Php
$ ar = array ('ΡΠ±Π»ΠΎΠΊΠΎ', 'Π°ΠΏΠ΅Π»ΡΡΠΈΠ½', 1, Π»ΠΎΠΆΡ, Π½ΠΎΠ»Ρ, ΠΈΡΡΠΈΠ½Π°, 3 + 5);
?>
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Π±ΡΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΏΡΠΈ ΡΡΠ°ΡΠΎΠΌΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Ρ Π² ΡΡΡΠΎΠΊΠΈ.
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π²ΡΠ²ΠΎΠ΄ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° PHP Π² JavaScript Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ json_encode
. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² PHP ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² JavaScript:
Php
$ book = ΠΌΠ°ΡΡΠΈΠ² (
"title" => "JavaScript: ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ",
"author" => "ΠΡΠ²ΠΈΠ΄ Π€Π»ΡΠ½Π°Π³Π°Π½",
"edition" => 6
);
?>
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΡ JSON_PRETTY_PRINT
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ json_encode
Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Ρ ΡΠΎΡΠΊΠΎΠΉ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΈ, ΠΈΠ»ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ: book ['title']
.
Π ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ JSON.parse?
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΊΠΎΠ΄ JavaScript JSON.parse
Π½Π΅ Π±ΡΠ» ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.Π₯ΠΎΡΡ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ json_encode
ΡΠ΅ΡΠ΅Π· ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ JavaScript, ΠΎΠ±ΡΡΠ½ΠΎ Π²Ρ Π·Π°Ρ
ΠΎΡΠΈΡΠ΅ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JSON.parse.
ΠΠ΅ΡΠ½ΡΡΡΡΡ ΠΊ Π½Π°ΡΠ°Π»Ρ
Function.prototype.apply () - JavaScript | MDN
ΠΠ΅ΡΠΎΠ΄ apply ()
Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ
ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° (ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ).
ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ (thisArg)
ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ (thisArg, argsArray)
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
-
thisArg
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅
ΡΡΠΎΡ
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ» Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π°func
.ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ
ΡΡΠΎ
ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π²ΠΈΠ΄ΠΈΠΌΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ: Π΅ΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π² ΠΊΠΎΠ΄Π΅ Π½Π΅ΡΡΡΠΎΠ³ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°,null
ΠΈundefined
Π±ΡΠ΄ΡΡ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, Π° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π² ΡΡΡΡΠ½ΠΎΠΉ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅.ΠΡΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½.-
argsArray
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ
func
, ΠΈΠ»ΠΈnull
ΠΈΠ»ΠΈundefined
, Π΅ΡΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ.ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ECMAScript 5, ΡΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π° Π½Π΅ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. Π‘ΠΌ. ΠΠΈΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ this
ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π₯ΠΎΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ call ()
, ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ call ()
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² , Π° apply ()
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡΡΠΈΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² .
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈΠ»ΠΈ ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π·Π½Π°ΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ
ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΡΡΠΎΡ
ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ (Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ). Π‘ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
apply
ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° call ()
, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ ΡΠΏΠΈΡΠΊΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²). Π‘ apply
Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΈΡΠ΅ΡΠ°Π» ΠΌΠ°ΡΡΠΈΠ²Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ func .apply (this, ['eat', 'bananas'])
ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Array
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ func .apply (this, new Array ('eat', 'bananas'))
.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° argsArray
. Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
- ΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ
Π½Π΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° apply
.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π²ΡΠ΅Ρ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ECMAScript 5th Edition, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²Ρ. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ length ΠΈ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ (Β«indexΒ») ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (0..length - 1)
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ NodeList
ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ {'length': 2, '0': 'eat', '1': 'bananas'}
.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Chrome <17 ΠΈ Internet Explorer <9, Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ, ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ apply Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ push
Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ². Π ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ push
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² Π² push
, ΠΎΠ½ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ ΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² Π²Π½ΡΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π§ΡΠΎ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠΎ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ? concat
Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π½ΠΎ ΠΎΠ½ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ — Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ².
ΠΠΎ Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ … Π ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ? ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΏΠ΅ΡΠ»Ρ? ΠΠ΅ΡΠΆΠ΅Π»ΠΈ Π½Π΅Ρ?
ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅
Π² ΠΏΠΎΠΌΠΎΡΡ!
const array = ['a', 'b'];
ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ = [0, 1, 2];
ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ.push.apply (ΠΌΠ°ΡΡΠΈΠ², ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ);
console.info (ΠΌΠ°ΡΡΠΈΠ²);
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ apply ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
Π£ΠΌΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ apply
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π±ΡΠ»ΠΈ Π±Ρ Π½Π°ΠΏΠΈΡΠ°Π½Ρ ΠΏΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ Math.max
/ Math.min
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ / ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
ΡΠΈΡΠ»Π° const = [5, 6, 2, 3, 7];
ΠΏΡΡΡΡ max = Math.max.apply (null, ΡΠΈΡΠ»Π°);
let min = Math.min.apply (null, ΡΠΈΡΠ»Π°);
ΠΌΠ°ΠΊΡ = -ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ, ΠΌΠΈΠ½ = + ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ;
for (let i = 0; i max) {
ΠΌΠ°ΠΊΡ = ΡΠΈΡΠ»Π° [Ρ];
}
if (ΡΠΈΡΠ»Π° [i]
ΠΠΎ Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅
ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΡΠΈΡΠΊΡΠ΅ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° JavaScript. ΠΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² (ΡΠΎ Π΅ΡΡΡ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π΄Π΅ΡΡΡΠΊΠ°ΠΌΠΈ ΡΡΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²) Π²Π°ΡΡΠΈΡΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π΄Π²ΠΈΠΆΠΊΠ°.(ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ JavaScriptCore ΠΈΠΌΠ΅Π΅Ρ ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠ΅Π΄Π΅Π» Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² 65536.
ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠ΅Π΄Π΅Π» (ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈΡΠΎΠ΄Π° Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΡΠ΅ΠΊΠ°) Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ Π²ΡΠ΄Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. Π§ΡΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΠ°ΡΠ½ΠΎ, Π΄ΡΡΠ³ΠΈΠ΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ
ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ: Π΅ΡΠ»ΠΈ Π±Ρ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΈΠΌΠ΅Π» ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΡΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° (ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΠ΅), ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ 5, 6, 2, 3
Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² , ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅
Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π° Π½Π΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ².
ΠΡΠ»ΠΈ Π²Π°Ρ ΠΌΠ°ΡΡΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΠ°ΡΡΠΈ Π΄ΠΎ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ: ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΊ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π° ΡΠ°Π·:
function minOfArray (arr) {
ΠΏΡΡΡΡ min = ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ;
ΠΏΡΡΡΡ QUANTUM = 32768;
for (var i = 0, len = arr.length; i
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌ ΡΠ΅ΠΏΠΎΡΠΊΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ
ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Java).
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Function
Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ construct
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²Ρ, Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΏΠΈΡΠΊΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
Function.prototype.construct = function (aArgs) {
let oNew = Object.create (this.prototype);
this.apply (oNew, aArgs);
return oNew;
};
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
function MyConstructor () {
for (ΠΏΡΡΡΡ nProp = 0; nProp
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠΎΡ Π½Π΅ΡΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Function.construct
Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΠ°ΡΠ°
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.Π ΡΡΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Function.prototype.bind
.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ Date
: [2012, 11, 4]
; Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅: new (Function.prototype.bind.apply (Date, [null] .concat ([2012, 11, 4]))) ()
.
ΠΡΠΎ Π½Π΅ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ, ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
ΡΠ°Π±Π»ΠΈΡΡ BCD Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΈΠ· twig Π² javascript
ΠΠ°ΠΊΠΈΠΌ Π±Ρ ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π½ΠΈ Π±ΡΠ» Twig, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅ΡΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±Π΅Π· Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΠΎΠΌΠΎΡΠΈ JavaScript
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ JavaScript, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ Π΄Π°Π½Π½ΡΡ .
Π‘Π½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π°Π·Π²Π°Π½Π½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΠ½Π΅ ΡΠ°ΡΡΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠΈΠΊΠ»Π΅:
{% Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² Π·Π°ΠΏΠΈΡΡΡ
%}
{{entry.title}}
{% endif%}
β ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ "
ΠΈΠ»ΠΈ <
, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ escape-ΡΠΈΠ»ΡΡΡ: ... | e ('html_attr')
.
ΠΠ°ΡΠ΅ΠΌ Π² JavaScript Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΈΡ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ , ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ.addEventListener ('DOMContentLoaded', () => {
const entryElements =
document.querySelectorAll ('[ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ-Π·Π°ΠΏΠΈΡΠΈ-Π΄Π°Π½Π½ΡΡ
]');
const entryIds =
Array.from (entryElements) .map (
item => item.dataset.entryId
);
console.log (entryIds);
});
$ (() => {
const $ entryElements = $ ('[ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ-Π·Π°ΠΏΠΈΡΠΈ-Π΄Π°Π½Π½ΡΡ
]');
const $ entryIds =
$ .map ($ entryElements, item => $ (item) .data ('entryId'));
console.log ($ entryIds);
});
β ΠΡΠ±ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ Π΄Π°Π½Π½ΡΡ
Ρ Π΄Π΅ΡΠΈΡΠ°ΠΌΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° data-
, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² camelCase Π² ΠΈΡ
Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡ
.Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: data-entry-id = ...
ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² entryId
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± Π°ΡΡΠΈΠ±ΡΡΠ°Ρ Π΄Π°Π½Π½ΡΡ ΡΠΌ. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ MDN ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π΄Π°Π½Π½ΡΡ .
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ
Π§ΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ Π² ΡΠΈΡΡΠΎΡΠ΅, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΡΡ ΡΠ°ΠΊΡΠΈΠΊΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ Π² JavaScript.
Π£Π»ΠΎΠ²ΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Twig, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² JSON, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±ΡΠ°ΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript:
{% set entryInfo = {
id: Π·Π°ΠΏΠΈΡΡ.Ρ Π±Ρ,
title: entry.title,
ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ: entry.showSub? entry.subheading: null,
}%}
...
ΠΠ°ΡΠ΅ΠΌ Π² JavaScript Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΠΈΡ
Π°ΡΡΠΈΠ±ΡΡΡ Π΄Π°Π½Π½ΡΡ
ΠΈ JSON. ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅
ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
document.addEventListener ('DOMContentLoaded', () => {
const entryInfoElements =
document.querySelectorAll ('[ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ-Π²Π²ΠΎΠ΄-Π΄Π°Π½Π½ΡΡ
]');
const entryInfoObjects =
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ.ΠΈΠ· (entryInfoElements) .map (
item => JSON.parse (item.dataset.entryInfo)
);
console.log (entryInfoObjects);
});
$ (() => {
const $ entryInfoElements = $ ('[ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ-Π²Π²ΠΎΠ΄-Π΄Π°Π½Π½ΡΡ
]');
const $ entryInfoObjects =
$ .map ($ entryInfoElements, item => $ (item) .data ('entryInfo'));
console.log ($ entryInfoObjects);
});
ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΡΠΈΠ»ΡΡΡ
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ Π² JSON, ΠΎΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
{"id": 1, "title": "... "," ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ":" ... "}
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ twig Π΄Π»Ρ escape-ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ | e ('html_attr')
Π΄Π»Ρ escape Π²ΠΌΠ΅ΡΡΠΎ | raw
. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ Π²ΠΎΠΊΡΡΠ³ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π½Π°ΡΠ΅ΠΌ Twig, Π½ΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
& # x7B; & quot; id & quot; & # x3A; 1, & quot; title & quot; & # x3A; & quot; ... & quot;, & quot; ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ & quot; & # x3A; & quot; ...& quot; & # x7D;
Π€ΠΈΠ»ΡΡΡ raw
ΠΎΠ±ΡΠ΅Π·Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ JSON, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΡ
ΠΊΠ°Π²ΡΡΠ΅ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΅Π³ΠΎ ΠΊ Π°ΡΡΠΈΠ±ΡΡΡ Π΄Π°Π½Π½ΡΡ
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°:
{"id": 1, "title": "...", "subheading": "..."}
...
ΠΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ΅Π³ ΡΠΊΡΠΈΠΏΡΠ°
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ, ΡΠΎ Ρ ΠΎΡΠΎΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ JavaScript Π² ΡΠ΅Π³Π΅ ΡΠΊΡΠΈΠΏΡΠ°:
<ΡΡΠ΅Π½Π°ΡΠΈΠΉ>
// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π»Ρ Π²Π°ΡΠΈΡ
Π΄Π°Π½Π½ΡΡ
var entryInfo = {
id: '{{entry.Ρ Π±Ρ }}',
title: '{{entry.title | e (' js ')}}',
ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ: '{{entry.showSub? entry.subheading | e ('js'): null}} ',
};
// ΠΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ΄Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
var entryTitle = '{{entry.title | e (' js ')}}'
ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·ΡΠΌΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΠΊΠ½Π° Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π² JavaScript:
document.addEventListener ('DOMContentLoaded', () => {
const entryInfo = window.entryInfo;
console.log (entryInfo);
});
TL; DR
ΠΠ»Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ
- ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ Π΄Π°Π½Π½ΡΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ Π΄Π°Π½Π½ΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:data-the-name = "... "
. - ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½ΡΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ JSON ΠΈ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΡΠ΅ Π΅Π³ΠΎ ΠΊ Π°ΡΡΠΈΠ±ΡΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ»Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ JSON ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΈΡ Π² ΡΠ΅Π³ ΡΠΊΡΠΈΠΏΡΠ°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°
Π£ΡΠ΅Π±Π½ΠΈΠΊJSON: Π·Π°ΠΏΡΠΎΡ Π΄Π°Π½Π½ΡΡ API Ρ ΠΏΠΎΠΌΠΎΡΡΡ JavaScript ΠΈΠ»ΠΈ PHP
JSON ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ. ΠΠΎΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² .json
ΡΡΡΠΎΠΊΠ°.
{
"name": "Π’Π°Π½Ρ",
"title": "ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ",
"ΠΠ΅Π±-ΡΠ°ΠΉΡ": ""
}
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Ρ
ΡΠ°Π½ΠΈΡΡΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅. Π£ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ .json
, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΡ Π΄Π°Π½Π½ΡΠ΅ (API, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ). ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ» .json
Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΡ Π΄Π°Π½Π½ΡΠ΅.
ΠΠΎΠ»Ρ
Π Π΄Π°Π½Π½ΡΠΌJSON ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ JSON Ρ ΠΏΠΎΠΌΠΎΡΡΡ PHP ΠΈ JavaScript.
ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ JSON?
JSON ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ J ava S cript O bject N otation. ΠΡΠΎ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ .json
, ΠΈ ΡΠΎΡΡΠΎΡΡ ΠΈΠ· ΡΠ΅ΡΠΈΠΈ ΠΏΠ°Ρ ΠΊΠ»ΡΡ / Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ .
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° JSON ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠΈΡΠ»ΠΎΠΌ, Π½ΡΠ»Π΅ΠΌ, ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ. ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² JSON Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΡΡ.
Π₯ΠΎΡΡ JSON ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ², JSON - ΡΡΠΎ ΡΡΡΠΎΠΊΠ° .Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ°, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· JSON Ρ PHP
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΡΡΠΎΠ±Ρ Π΄Π΅ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ JSON - ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠΎΠΊΠ°, ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡ JSON Π² ΡΡΡΠΎΠΊΡ PHP ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΅Π΅ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ $ data
.
$ data = '{
"name": "ΠΡΠ°Π³ΠΎΡΠ½",
"race": "Π§Π΅Π»ΠΎΠ²Π΅ΠΊ"
} ';
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ json_decode ()
Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ JSON Π² ΠΎΠ±ΡΠ΅ΠΊΡ PHP.
$ ΡΠΈΠΌΠ²ΠΎΠ» = json_decode ($ data);
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ Π΄ΠΎΡΡΡΠΏ ΠΊΠ°ΠΊ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ PHP.
ΠΠΎΡ ΠΈ Π²Π΅ΡΡ ΡΠ°ΠΉΠ».
Php
$ data = '{
"name": "ΠΡΠ°Π³ΠΎΡΠ½",
"race": "Π§Π΅Π»ΠΎΠ²Π΅ΠΊ"
} ';
$ ΡΠΈΠΌΠ²ΠΎΠ» = json_decode ($ Π΄Π°Π½Π½ΡΠ΅);
ΡΡ
ΠΎ $ ΡΠΈΠΌΠ²ΠΎΠ»-> ΠΈΠΌΡ;
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠΎΡΡΡΠΏ ΠΊ ΠΊΠ°Π½Π°Π»Ρ JSON ΠΏΠΎ URL-Π°Π΄ΡΠ΅ΡΡ
Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ JSON Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» .json
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΡΡΡ Π΅Π³ΠΎ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ PHP.
ΠΠΎΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ data.json .
; [
{
ΠΈΠΌΡ: 'ΠΡΠ°Π³ΠΎΡΠ½',
ΡΠ°ΡΠ°: 'Π§Π΅Π»ΠΎΠ²Π΅ΠΊ',
},
{
ΠΈΠΌΡ: 'ΠΠ΅Π³ΠΎΠ»Π°Ρ',
ΡΠ°ΡΠ°: 'ΠΠ»ΡΡ',
},
{
ΠΈΠΌΡ: 'ΠΠΈΠΌΠ»ΠΈ',
ΡΠ°ΡΠ°: 'ΠΠ½ΠΎΠΌ',
},
]
Π Π²ΠΎΡ ΠΊΠ°ΠΊ ΠΌΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² PHP.
$ url = 'data.json';
$ data = file_get_contents ($ url);
$ characters = json_decode ($ data);
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ΄Π½Ρ Π·Π°ΠΏΠΈΡΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ Π½ΠΎΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ΅Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ 0.
echo $ characters [0] -> ΠΈΠΌΡ;
Π― ΠΌΠΎΠ³Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠΌ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° foreach
.
foreach (ΡΠΈΠΌΠ²ΠΎΠ»Ρ $ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ» $) {
ΡΡ
ΠΎ $ ΡΠΈΠΌΠ²ΠΎΠ»-> ΠΈΠΌΡ. '
';
}
ΠΠΎΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ°ΠΉΠ» PHP.
Php
$ url = 'data.json';
$ data = file_get_contents ($ url);
$ characters = json_decode ($ data);
echo $ characters [0] -> ΠΈΠΌΡ;
foreach (ΡΠΈΠΌΠ²ΠΎΠ»Ρ $ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ» $) {
ΡΡ
ΠΎ $ ΡΠΈΠΌΠ²ΠΎΠ»-> ΠΈΠΌΡ. '
';
}
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
<ΡΠ°Π±Π»ΠΈΡΠ°>
ΠΠΌΡ
Π Π°ΡΠ°
php foreach (ΡΠΈΠΌΠ²ΠΎΠ»Ρ $ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»Ρ $):?>
php echo $ character-> name; ?>
php echo $ character-> race; ?>
php endforeach; ?>
ΠΡΠ°Π³ΠΎΡΠ½ | Π§Π΅Π»ΠΎΠ²Π΅ΠΊ |
ΠΠΈΠΌΠ»ΠΈ | ΠΠ°ΡΠ»ΠΈΠΊ |
ΠΠ΅Π³ΠΎΠ»Π°Ρ | ΠΠ»ΡΡ |
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ
foreach
, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊforeach (): / * loop * / endforeach;
Π²ΠΌΠ΅ΡΡΠΎforeach () {/ * loop * /}
.ΠΡΠΎ ΡΠ°ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ HTML.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ Π² PHP. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΄ΠΈΡΠ΅ true
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π² json_decode ()
, Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ°Π½ΡΡ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ []
Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ½ΠΊΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ ->
.
$ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² = json_decode ($ data, true);
ΠΠΌΠ΅ΡΡΠΎ -> race
ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ['race']
.
echo $ characters [0] ['Π³ΠΎΠ½ΠΊΠ°'];
Π Π²ΠΎΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΈΠΊΠ»Ρ.
foreach (ΡΠΈΠΌΠ²ΠΎΠ»Ρ $ ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ» $) {
echo $ character ['race']. "\ ΠΏ";
}
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ JSON-ΠΊΠ°Π½Π°Π»Ρ Ρ ΠΏΠ°ΡΠ°ΠΌΠΈ ΠΊΠ»ΡΡ / Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π·Π°Π½ΡΠ΄Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² Π½ΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ wizards.json .
[
{
"name": "ΠΠ°ΡΡΠΈ ΠΠΎΡΡΠ΅Ρ",
"ΠΏΠ°Π»ΠΎΡΠΊΠ°": [
{
"core": "ΠΏΠ΅ΡΠΎ ΡΠ΅Π½ΠΈΠΊΡΠ°",
"Π΄Π»ΠΈΠ½Π°": "11 Π΄ΡΠΉΠΌΠΎΠ²",
"Π΄Π΅ΡΠ΅Π²ΠΎ": "ΠΏΠ°Π΄ΡΠ±"
}
]
},
{
"name": "ΠΠ΅ΡΠΌΠΈΠΎΠ½Π° ΠΡΠ΅ΠΉΠ½Π΄ΠΆΠ΅Ρ",
"ΠΏΠ°Π»ΠΎΡΠΊΠ°": [
{
"core": "ΡΠ΅ΡΠ΄ΡΠ΅ Π΄ΡΠ°ΠΊΠΎΠ½Π°",
"Π΄Π»ΠΈΠ½Π°": "10 ΠΈ 3/4 Π΄ΡΠΉΠΌΠ°",
"Π΄Π΅ΡΠ΅Π²ΠΎ": "Π²ΠΈΠ½ΠΎΠ³ΡΠ°Π΄Π½Π°Ρ Π»ΠΎΠ·Π°"
}
]
}
]
Π Π°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° ΡΠΈΠ΄Π°.
$ url = 'wizards.json';
$ data = file_get_contents ($ url);
$ wizards = json_decode ($ data, ΠΈΡΡΠΈΠ½Π°);
ΠΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ $ wizard ['key'] [0] ['key']
Π² ΡΠΈΠΊΠ»Π΅ ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½.
foreach ($ wizards ΠΊΠ°ΠΊ $ wizard) {
echo $ wizard ['ΠΈΠΌΡ']. Β«ΠΠ΅Π·Π» Π΅ΡΡΡΒ».
$ wizard ['ΠΏΠ°Π»ΠΎΡΠΊΠ°'] [0] ['Π΄Π΅ΡΠ΅Π²ΠΎ']. ','.
$ wizard ['ΠΏΠ°Π»ΠΎΡΠΊΠ°'] [0] ['Π΄Π»ΠΈΠ½Π°']. ', Ρ'.
$ wizard ['ΠΏΠ°Π»ΠΎΡΠΊΠ°'] [0] ['ΡΠ΄ΡΠΎ'].' ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ.
';
}
ΠΠ°Π»ΠΎΡΠΊΠ° ΠΠ°ΡΡΠΈ ΠΠΎΡΡΠ΅ΡΠ° - ΠΏΠ°Π΄ΡΠ±, 11 Π΄ΡΠΉΠΌΠΎΠ², Ρ ΡΠ΅ΡΠ΄ΡΠ΅Π²ΠΈΠ½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ° ΡΠ΅Π½ΠΈΠΊΡΠ°.
ΠΠ΅Π·Π» ΠΠ΅ΡΠΌΠΈΠΎΠ½Ρ ΠΡΠ΅ΠΉΠ½Π΄ΠΆΠ΅Ρ - Π²ΠΈΠ½ΠΎΠ³ΡΠ°Π΄Π½Π°Ρ Π»ΠΎΠ·Π°, 10 ΠΈ 3/4 Π΄ΡΠΉΠΌΠ°, Ρ ΡΠ΅ΡΠ΄Π΅ΡΠ½ΠΈΠΊΠΎΠΌ Π΄ΡΠ°ΠΊΠΎΠ½Π°.
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° PHP Π² JSON
Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ json_decode ()
Π΄Π»Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ JSON Π² PHP, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ PHP Π² JSON Ρ ΠΏΠΎΠΌΠΎΡΡΡ json_encode ()
.
$ Π΄Π°Π½Π½ΡΠ΅ = [
'name' => 'ΠΡΠ°Π³ΠΎΡΠ½',
'race' => 'Π§Π΅Π»ΠΎΠ²Π΅ΠΊ'
];
echo json_encode ($ data);
ΠΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΌΠ°ΡΡΠΈΠ² PHP ΠΈ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ.ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
{"ΠΈΠΌΡ": "ΠΡΠ°Π³ΠΎΡΠ½", "ΡΠ°ΡΠ°": "Π§Π΅Π»ΠΎΠ²Π΅ΠΊ"}
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· JSON Ρ JavaScript
ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ JavaScript Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ data
ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠΎΠΊΡ JSON.
var data =
'[{"name": "ΠΡΠ°Π³ΠΎΡΠ½", "ΡΠ°ΡΠ°": "Π§Π΅Π»ΠΎΠ²Π΅ΠΊ"}, {"name": "ΠΠΈΠΌΠ»ΠΈ", "ΡΠ°ΡΠ°": "ΠΠ½ΠΎΠΌ"}]'
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JavaScript, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² ΡΡΠ½ΠΊΡΠΈΡ JSON.parse ()
, Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ.
ΠΡΡΡΠ΄Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΊΠ°ΠΊ ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ JavaScript.
console.log (Π΄Π°Π½Π½ΡΠ΅ [1] .name)
Π ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠΉΡΠΈ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° Π΄Π»Ρ
.
Π΄Π»Ρ (var i = 0; i
ΠΡΠ°Π³ΠΎΡΠ½ - ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ.
ΠΠΈΠΌΠ»ΠΈ - Π³Π½ΠΎΠΌ.
ΠΡΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΡΠΎ! Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ JSON ΠΏΠΎ URL-Π°Π΄ΡΠ΅ΡΡ. ΠΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°Π³, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°ΠΏΡΠΎΡ ΠΊ ΡΠ°ΠΉΠ»Ρ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΡΡΠΎΠΊΡ JSON ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π΅Π΅ Π² Π΄Π°Π½Π½ΡΠ΅ .json .
; [
{
ΠΈΠΌΡ: 'ΠΡΠ°Π³ΠΎΡΠ½',
ΡΠ°ΡΠ°: 'Π§Π΅Π»ΠΎΠ²Π΅ΠΊ',
},
{
ΠΈΠΌΡ: 'ΠΠΈΠΌΠ»ΠΈ',
ΡΠ°ΡΠ°: 'ΠΠ½ΠΎΠΌ',
},
]
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ XMLHttpRequest ()
.
Π·Π°ΠΏΡΠΎΡ var = Π½ΠΎΠ²ΡΠΉ XMLHttpRequest ()
ΠΡ ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ» ( data.json ) ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΠΎΡ GET (URL).
request.open ('GET', 'data.json', true)
ΠΡΡΡΠ΄Π° ΠΌΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΈ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π½Π°ΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ JSON Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΡΡΠ½ΠΊΡΠΈΠΈ onload
.
request.onload = function () {
}
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ Π·Π°ΠΏΡΠΎΡ.
ΠΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠ΄.
Π·Π°ΠΏΡΠΎΡ var = Π½ΠΎΠ²ΡΠΉ XMLHttpRequest ()
request.open ('ΠΠΠΠ£Π§ΠΠ’Π¬', 'data.json', ΠΈΡΡΠΈΠ½Π°)
request.onload = function () {
var data = JSON.parse (this.response)
for (var i = 0; i
Π Π½Π° Π²ΡΡ ΠΎΠ΄Π΅.
ΠΡΠ°Π³ΠΎΡΠ½ - ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ.ΠΠΈΠΌΠ»ΠΈ - Π³Π½ΠΎΠΌ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Fetch
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Fetch API, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅. ΠΡΠΎΡΡΠΈΡΠ΅ ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JavaScript Fetch API Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ JSON, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ .
Π²ΡΠ±ΠΎΡΠΊΠ° ('./ data.json')
.then ((ΠΎΡΠ²Π΅Ρ) => {
Π²Π΅ΡΠ½ΡΡΡ response.json ()
})
.then ((Π΄Π°Π½Π½ΡΠ΅) => {
console.log (Π΄Π°Π½Π½ΡΠ΅)
})
.catch ((err) => {
})
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ jQuery
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ°Π½Π°Π» JSON Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ JavaScript Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΡΠ»ΠΎΠΆΠ½ΠΎ.