Thứ Năm, 28 tháng 2, 2019

Đào tạo PHP - PHP - Phiên

Một cách khác để làm cho dữ liệu có thể truy cập được trên các trang khác nhau của toàn bộ trang web là sử dụng Phiên Học lập trình PHP.

Một phiên tạo một tệp trong một thư mục tạm thời trên máy chủ nơi các biến phiên đã đăng ký và các giá trị của chúng được lưu trữ. Dữ liệu này sẽ có sẵn cho tất cả các trang trên trang web trong chuyến thăm đó.

Học lập trình PHP chuyên nghiệp
Học lập trình PHP chuyên nghiệp

Vị trí của tệp tạm thời được xác định bởi một cài đặt trong tệp Học lập trình PHP có tên session.save_path . Trước khi sử dụng bất kỳ biến phiên nào, hãy đảm bảo bạn đã thiết lập đường dẫn này.

Khi một phiên được bắt đầu sau những điều xảy ra


Trước tiên, PHP tạo một mã định danh duy nhất cho phiên cụ thể đó là một chuỗi ngẫu nhiên gồm 32 số thập lục phân, chẳng hạn như

Một cookie có tên PHPSESSID sẽ tự động được gửi đến máy tính của người dùng để lưu trữ chuỗi nhận dạng phiên duy nhất.

Một tệp được tự động tạo trên máy chủ trong thư mục tạm thời được chỉ định và mang tên của mã định danh duy nhất có tiền tố là sess_ tức là sess_3c7foj34c3jj973hjkop2fc937e3443.

Khi tập lệnh PHP muốn truy xuất giá trị từ biến phiên, Học lập trình PHP sẽ tự động lấy chuỗi số nhận dạng phiên duy nhất từ ​​cookie PHPSESSID và sau đó tìm trong thư mục tạm thời của tệp đó mang tên đó và xác thực có thể được thực hiện bằng cách so sánh cả hai giá trị.

Một phiên kết thúc khi người dùng mất trình duyệt hoặc sau khi rời khỏi trang web, máy chủ sẽ chấm dứt phiên sau một khoảng thời gian xác định trước, thường là thời gian 30 phút.

Bắt đầu một phiên PHP


Một phiên PHP dễ dàng được bắt đầu bằng cách thực hiện cuộc gọi đến hàm session_start (). Hàm này trước tiên kiểm tra xem một phiên đã được bắt đầu chưa và nếu không bắt đầu thì nó bắt đầu một phiên. Bạn nên đặt cuộc gọi đến session_start () ở đầu trang.

Các biến phiên được lưu trữ trong mảng kết hợp được gọi là $ _SESSION [] . Các biến này có thể được truy cập trong suốt vòng đời của phiên.

Ví dụ sau đây bắt đầu một phiên sau đó đăng ký một biến gọi là bộ đếm được tăng lên mỗi khi trang được truy cập trong phiên.

Sử dụng hàm isset () để kiểm tra xem biến phiên đã được đặt hay chưa.

Đặt mã này vào tệp test.php và tải tệp này nhiều lần để xem kết quả
<?php
   session_start();
   
   if( isset( $_SESSION['counter'] ) ) {
      $_SESSION['counter'] += 1;
   }else {
      $_SESSION['counter'] = 1;
   }
 
   $msg = "You have visited this page ".  $_SESSION['counter'];
   $msg .= "in this session.";
?>

<html>
   
   <head>
      <title>Setting up a PHP session</title>
   </head>
   
   <body>
      <?php  echo ( $msg ); ?>
   </body>
   
</html>
Nó sẽ tạo ra kết quả sau

You have visited this page 1in this session.

Phá hủy một phiên PHP

Một phiên Học lập trình PHP có thể bị hủy bởi hàm session_destroy () . Hàm này không cần bất kỳ đối số nào và một cuộc gọi có thể phá hủy tất cả các biến phiên. 

Nếu bạn muốn hủy một biến phiên duy nhất thì bạn có thể sử dụng hàm unset () để hủy đặt biến phiên.

Dưới đây là ví dụ để bỏ đặt một biến duy nhất
<?php
   unset($_SESSION['counter']);
?>
Đây là cuộc gọi sẽ hủy tất cả các biến phiên
<?php
   session_destroy();
?>

Bật phiên tự động


Bạn không cần gọi hàm start_session () để bắt đầu phiên khi người dùng truy cập trang web của bạn nếu bạn có thể đặt biến session.auto_start thành 1 trong tệp php.ini .

Phiên không có cookie

Có thể có trường hợp người dùng không cho phép lưu trữ cookie trên máy của họ. Vì vậy, có một phương pháp khác để gửi ID phiên tới trình duyệt.

Ngoài ra, bạn có thể sử dụng SID không đổi được xác định nếu phiên bắt đầu. Nếu khách hàng không gửi cookie phiên thích hợp, nó có dạng session_name = session_id. Mặt khác, nó mở rộng thành một chuỗi rỗng. Do đó, bạn có thể nhúng nó vô điều kiện vào các URL.

Ví dụ sau minh họa cách đăng ký một biến và cách liên kết chính xác đến một trang khác bằng SID.
<?php
   session_start();
   
   if (isset($_SESSION['counter'])) {
      $_SESSION['counter'] = 1;
   }else {
      $_SESSION['counter']++;
   }
   
   $msg = "You have visited this page ".  $_SESSION['counter'];
   $msg .= "in this session.";
   
   echo ( $msg );
?>

<p>
   To continue  click following link <br />
   
   <a  href = "nextpage.php?<?php echo htmlspecialchars(SID); ?>">
</p>
Nó sẽ tạo ra kết quả sau

You have visited this page 1in this session.
To continue click following link 

Các htmlspecialchars () có thể được sử dụng khi in SID để ngăn chặn các cuộc tấn công liên quan XSS.

Thứ Tư, 27 tháng 2, 2019

Khóa đào tạo PHP - PHP - Cookies

Cookies là các tệp văn bản được lưu trữ trên máy khách và chúng được giữ cho mục đích theo dõi sử dụng. Khóa đào tạo PHP hỗ trợ minh bạch các cookie HTTP.

Có ba bước liên quan đến việc xác định người dùng quay lại

Tập lệnh máy chủ gửi một bộ cookie đến trình duyệt. Ví dụ tên, tuổi hoặc số nhận dạng, v.v.

Trình duyệt lưu thông tin này trên máy cục bộ để sử dụng trong tương lai.

Học lập trình PHP chuyên nghiệp
Học lập trình PHP chuyên nghiệp

Khi trình duyệt lần sau gửi bất kỳ yêu cầu nào đến máy chủ web thì nó sẽ gửi thông tin cookie đó đến máy chủ và máy chủ sử dụng thông tin đó để nhận dạng người dùng.

Chương này sẽ hướng dẫn bạn cách đặt cookie, cách truy cập và cách xóa chúng.

Giải phẫu của một chiếc bánh quy


Cookie thường được đặt trong tiêu đề HTTP (mặc dù JavaScript cũng có thể đặt cookie trực tiếp trên trình duyệt). Một tập lệnh Khóa đào tạo PHP đặt cookie có thể gửi các tiêu đề trông giống như thế này

HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; 
                 path=/; domain=tutorialspoint.com
Connection: close
Content-Type: text/html

Như bạn có thể thấy, tiêu đề Set-Cookie chứa một cặp giá trị tên, ngày GMT, đường dẫn và tên miền. Tên và giá trị sẽ được mã hóa URL. Trường hết hạn là một hướng dẫn để trình duyệt "quên" cookie sau thời gian và ngày nhất định.

Nếu trình duyệt được cấu hình để lưu trữ cookie, thì nó sẽ giữ thông tin này cho đến ngày hết hạn. Nếu người dùng trỏ trình duyệt vào bất kỳ trang nào khớp với đường dẫn và miền của cookie, nó sẽ gửi lại cookie cho máy chủ. Các tiêu đề của trình duyệt có thể trông giống như thế này

GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name=xyz

Tập lệnh Khóa đào tạo PHP sau đó sẽ có quyền truy cập vào cookie trong các biến môi trường $ _COOKIE hoặc $ HTTP_COOKIE_VARS [] chứa tất cả các tên và giá trị cookie. Có thể truy cập cookie ở trên bằng $ HTTP_COOKIE_VARS ["name"].

Đặt Cookies bằng PHP


PHP đã cung cấp hàm setcookie () để đặt cookie. Hàm này yêu cầu tối đa sáu đối số và phải được gọi trước thẻ <html>. Đối với mỗi cookie, chức năng này phải được gọi riêng.

setcookie(name, value, expire, path, domain, security);

Dưới đây là chi tiết của tất cả các đối số


Tên - Cái này đặt tên của cookie và được lưu trữ trong một biến môi trường có tên HTTP_COOKIE_VARS. Biến này được sử dụng trong khi truy cập cookie.

Giá trị - Điều này đặt giá trị của biến được đặt tên và là nội dung mà bạn thực sự muốn lưu trữ.

Hết hạn - Điều này xác định thời gian trong tương lai tính bằng giây kể từ 00:00:00 GMT ngày 1 tháng 1 năm 1970. Sau thời gian này, cookie sẽ không thể truy cập được. Nếu tham số này không được đặt thì cookie sẽ tự động hết hạn khi Trình duyệt web bị đóng.

Đường dẫn - Cái này chỉ định các thư mục mà cookie hợp lệ. Một ký tự gạch chéo về phía trước cho phép cookie có hiệu lực cho tất cả các thư mục.

Tên miền - Điều này có thể được sử dụng để chỉ định tên miền trong các tên miền rất lớn và phải có ít nhất hai giai đoạn để hợp lệ. Tất cả các cookie chỉ có giá trị cho máy chủ lưu trữ và tên miền đã tạo ra chúng.

Bảo mật - Điều này có thể được đặt thành 1 để chỉ định rằng cookie chỉ nên được gửi bằng cách truyền an toàn bằng HTTPS nếu không được đặt thành 0, có nghĩa là cookie có thể được gửi bằng HTTP thông thường.

Ví dụ sau sẽ tạo hai tên cookie và tuổi các cookie này sẽ hết hạn sau một giờ.
<?php
   setcookie("name", "John Watkin", time()+3600, "/","", 0);
   setcookie("age", "36", time()+3600, "/", "",  0);
?>
<html>
   
   <head>
      <title>Setting Cookies with PHP</title>
   </head>
   
   <body>
      <?php echo "Set Cookies"?>
   </body>
   
</html>

Truy cập Cookies bằng PHP

Khóa đào tạo PHP cung cấp nhiều cách để truy cập cookie. Cách đơn giản nhất là sử dụng các biến $ _COOKIE hoặc $ HTTP_COOKIE_VARS. Ví dụ sau sẽ truy cập tất cả các cookie được đặt trong ví dụ trên.
<html>
   
   <head>
      <title>Accessing Cookies with PHP</title>
   </head>
   
   <body>
      
      <?php
         echo $_COOKIE["name"]. "<br />";
         
         /* is equivalent to */
         echo $HTTP_COOKIE_VARS["name"]. "<br />";
         
         echo $_COOKIE["age"] . "<br />";
         
         /* is equivalent to */
         echo $HTTP_COOKIE_VARS["age"] . "<br />";
      ?>
      
   </body>
</html>
Bạn có thể sử dụng hàm isset () để kiểm tra xem cookie có được đặt hay không.
<html>
   
   <head>
      <title>Accessing Cookies with PHP</title>
   </head>
   
   <body>
      
      <?php
         if( isset($_COOKIE["name"]))
            echo "Welcome " . $_COOKIE["name"] . "<br />";
         
         else
            echo "Sorry... Not recognized" . "<br />";
      ?>
      
   </body>
</html>

Xóa Cookie bằng PHP

Chính thức, để xóa cookie, Khóa đào tạo PHP nên gọi setcookie () chỉ với đối số tên nhưng điều này không phải lúc nào cũng hoạt động tốt, tuy nhiên, không nên dựa vào.
An toàn nhất là đặt cookie với ngày đã hết hạn
<?php
   setcookie( "name", "", time()- 60, "/","", 0);
   setcookie( "age", "", time()- 60, "/","", 0);
?>
<html>
   
   <head>
      <title>Deleting Cookies with PHP</title>
   </head>
   
   <body>
      <?php echo "Deleted Cookies" ?>
   </body>
   
</html>

Thứ Ba, 26 tháng 2, 2019

Học lập trình PHP - PHP - Hàm

Các hàm Học lập trình PHP tương tự như các ngôn ngữ lập trình khác. Hàm là một đoạn mã cần thêm một đầu vào dưới dạng tham số và thực hiện một số xử lý và trả về một giá trị.

Bạn đã thấy nhiều hàm như fopen () và fread () v.v ... Chúng là các hàm dựng sẵn nhưng PHP cũng cung cấp cho bạn tùy chọn để tạo các hàm của riêng bạn.

Học lập trình PHP chuyên nghiệp
Học lập trình PHP chuyên nghiệp

Có hai phần cần phải rõ ràng với bạn


Tạo một hàm PHP

Gọi một hàm PHP

Trong thực tế, bạn hầu như không cần phải tạo hàm Học lập trình PHP của riêng mình vì đã có hơn 1000 hàm thư viện tích hợp được tạo cho khu vực khác nhau và bạn chỉ cần gọi chúng theo yêu cầu của bạn.

Vui lòng tham khảo Tài liệu tham khảo chức năng PHP để có một bộ đầy đủ các chức năng hữu ích.

Tạo chức năng PHP


Rất dễ dàng để tạo chức năng PHP của riêng bạn. Giả sử bạn muốn tạo một hàm PHP sẽ chỉ đơn giản là viết một tin nhắn đơn giản trên trình duyệt của bạn khi bạn sẽ gọi nó. Ví dụ sau đây tạo ra một hàm gọi là writeMessage () và sau đó gọi nó ngay sau khi tạo nó.

Lưu ý rằng trong khi tạo một hàm, tên của nó phải bắt đầu bằng hàm từ khóa và tất cả mã Học lập trình PHP phải được đặt bên trong dấu ngoặc {và} như trong ví dụ sau đây
<html>
   
   <head>
      <title>Writing PHP Function</title>
   </head>
   
   <body>
      
      <?php
         /* Defining a PHP Function */
         function writeMessage() {
            echo "You are really a nice person, Have a nice time!";
         }
         
         /* Calling a PHP Function */
         writeMessage();
      ?>
      
   </body>
</html>
Điều này sẽ hiển thị kết quả sau

You are really a nice person, Have a nice time!

Các hàm PHP với các tham số

Học lập trình PHP cung cấp cho bạn tùy chọn để truyền các tham số của bạn bên trong một hàm. Bạn có thể vượt qua bao nhiêu tham số bạn thích.

Các tham số này hoạt động như các biến bên trong chức năng của bạn. Ví dụ sau lấy hai tham số nguyên và thêm chúng lại với nhau và sau đó in chúng.
<html>
   
   <head>
      <title>Writing PHP Function with Parameters</title>
   </head>
   
   <body>
   
      <?php
         function addFunction($num1, $num2) {
            $sum = $num1 + $num2;
            echo "Sum of the two numbers is : $sum";
         }
         
         addFunction(10, 20);
      ?>
      
   </body>
</html>
Điều này sẽ hiển thị kết quả sau

Sum of the two numbers is : 30

Truyền đạt đối số bằng cách tham khảo

Có thể truyền đối số cho các hàm bằng cách tham chiếu. Điều này có nghĩa là một tham chiếu đến biến được thao tác bởi hàm chứ không phải là bản sao của giá trị của biến.

Mọi thay đổi được thực hiện cho một đối số trong các trường hợp này sẽ thay đổi giá trị của biến ban đầu. Bạn có thể chuyển một đối số bằng cách tham chiếu bằng cách thêm dấu và vào tên biến trong lệnh gọi hàm hoặc định nghĩa hàm.

Ví dụ sau mô tả cả hai trường hợp.
<html>
   
   <head>
      <title>Passing Argument by Reference</title>
   </head>
   
   <body>
      
      <?php
         function addFive($num) {
            $num += 5;
         }
         
         function addSix(&$num) {
            $num += 6;
         }
         
         $orignum = 10;
         addFive( $orignum );
         
         echo "Original Value is $orignum<br />";
         
         addSix( $orignum );
         echo "Original Value is $orignum<br />";
      ?>
      
   </body>
</html>
Điều này sẽ hiển thị kết quả sau

Original Value is 10
Original Value is 16 

Hàm PHP trả về giá trị

Một hàm có thể trả về một giá trị bằng cách sử dụng câu lệnh return kết hợp với một giá trị hoặc đối tượng. return dừng thực thi hàm và gửi giá trị trở lại mã gọi Học lập trình PHP.

Bạn có thể trả về nhiều hơn một giá trị từ một hàm bằng cách sử dụng mảng trả về (1,2,3,4) .

Ví dụ sau lấy hai tham số nguyên và cộng chúng lại với nhau và sau đó trả tổng của chúng cho chương trình gọi. Lưu ý rằng từ khóa return được sử dụng để trả về giá trị từ hàm.
<html>
   
   <head>
      <title>Writing PHP Function which returns value</title>
   </head>
   
   <body>
   
      <?php
         function addFunction($num1, $num2) {
            $sum = $num1 + $num2;
            return $sum;
         }
         $return_value = addFunction(10, 20);
         
         echo "Returned value from the function : $return_value";
      ?>
      
   </body>
</html>
Điều này sẽ hiển thị kết quả sau

Returned value from the function : 30

Đặt giá trị mặc định cho tham số chức năng

Bạn có thể đặt tham số để có giá trị mặc định nếu người gọi hàm không vượt qua.

Hàm sau in NULL trong trường hợp sử dụng không chuyển bất kỳ giá trị nào cho hàm này.
<html>
   
   <head>
      <title>Writing PHP Function which returns value</title>
   </head>
   
   <body>
      
      <?php
         function printMe($param = NULL) {
            print $param;
         }
         
         printMe("This is test");
         printMe();
      ?>
      
   </body>
</html>
Điều này sẽ tạo ra kết quả sau

This is test

Các cuộc gọi chức năng động

Có thể gán tên hàm dưới dạng chuỗi cho các biến và sau đó xử lý các biến này chính xác như chính tên hàm của bạn. Ví dụ sau mô tả hành vi này Học lập trình PHP.
<html>
   
   <head>
      <title>Dynamic Function Calls</title>
   </head>
   
   <body>
      
      <?php
         function sayHello() {
            echo "Hello<br />";
         }
         
         $function_holder = "sayHello";
         $function_holder();
      ?>
      
   </body>
</html>
Điều này sẽ hiển thị kết quả sau

Hello

Thứ Hai, 25 tháng 2, 2019

Học PHP - PHP - Tệp & I / O

Chương này sẽ giải thích các chức năng sau liên quan đến tệp

Mở một tập tin

Đọc một tập tin

Viết một tập tin

Đóng một tập tin

Học lập trình PHP chuyên nghiệp tại NIIT - ICT Hà Nội
Học lập trình PHP chuyên nghiệp tại NIIT - ICT Hà Nội

Mở và đóng tệp


Hàm fopen () của Học lập trình PHP được sử dụng để mở tệp. Nó yêu cầu hai đối số nêu đầu tiên tên tệp và sau đó chế độ để hoạt động.

Chế độ tập tin có thể được chỉ định là một trong sáu tùy chọn trong bảng này.

Không.Chế độ & Mục đích
1r

Mở tệp để chỉ đọc.

Đặt con trỏ tệp ở đầu tệp.
2r +

Mở tệp để đọc và viết.

Đặt con trỏ tệp ở đầu tệp.
3w

Mở tệp chỉ để viết.

Đặt con trỏ tệp ở đầu tệp.

và cắt ngắn tập tin về độ dài bằng không. Nếu tập tin không

tồn tại sau đó nó cố gắng tạo một tập tin.
4w +

Mở tệp chỉ để đọc và viết.

Đặt con trỏ tệp ở đầu tệp.

và cắt ngắn tập tin về độ dài bằng không. Nếu tập tin không

tồn tại sau đó nó cố gắng tạo một tập tin.
5một
Mở tệp chỉ để viết.

Đặt con trỏ tệp ở cuối tệp.

Nếu tập tin không tồn tại thì nó cố gắng tạo một tập tin.
6a +

Mở tệp chỉ để đọc và viết.

Đặt con trỏ tệp ở cuối tệp.

Nếu tập tin không tồn tại thì nó cố gắng tạo một tập tin.
Nếu một nỗ lực để mở một tệp thất bại thì fopen trả về giá trị sai nếu không nó sẽ trả về một con trỏ tệp được sử dụng để đọc thêm hoặc ghi vào tệp đó.

Sau khi thực hiện thay đổi đối với tệp đã mở, điều quan trọng là phải đóng tệp đó bằng hàm fclose () . Các fclose () chức năng đòi hỏi một con trỏ tập tin như là đối số của nó và sau đó trả về đúng khi việc đóng cửa thành công hay sai nếu nó không thành công.

Đọc một tập tin


Khi một tệp được mở bằng hàm fopen (), nó có thể được đọc với một hàm gọi là fread () . Hàm này yêu cầu hai đối số. Đây phải là con trỏ tệp và độ dài của tệp được biểu thị bằng byte.

Độ dài tệp có thể được tìm thấy bằng cách sử dụng hàm filesize () lấy tên tệp làm đối số của nó và trả về kích thước của tệp được biểu thị bằng byte.

Vì vậy, đây là các bước cần thiết để đọc một tệp với Học lập trình PHP.

Mở tệp bằng hàm fopen () .

Lấy độ dài của tệp bằng cách sử dụng hàm filesize () .

Đọc nội dung của tệp bằng hàm fread () .

Đóng tệp với hàm fclose () .

Ví dụ sau gán nội dung của tệp văn bản cho một biến sau đó hiển thị các nội dung đó trên trang web.
<html>

   <head>
      <title>Reading a file using PHP</title>
   </head>
   
   <body>
      
      <?php
         $filename = "tmp.txt";
         $file = fopen( $filename, "r" );
         
         if( $file == false ) {
            echo ( "Error in opening file" );
            exit();
         }
         
         $filesize = filesize( $filename );
         $filetext = fread( $file, $filesize );
         fclose( $file );
         
         echo ( "File size : $filesize bytes" );
         echo ( "<pre>$filetext</pre>" );
      ?>
      
   </body>
</html>

Nó sẽ tạo ra kết quả sau


Viết một tập tin

Một tệp mới có thể được viết hoặc văn bản có thể được thêm vào một tệp hiện có bằng cách sử dụng hàm Học lập trình PHP fwrite () . Hàm này yêu cầu hai đối số chỉ định một con trỏ tệp và chuỗi dữ liệu sẽ được ghi. Tùy chọn một đối số nguyên thứ ba có thể được bao gồm để xác định độ dài của dữ liệu cần ghi. Nếu bao gồm đối số thứ ba, việc viết sẽ dừng lại sau khi đạt được độ dài đã chỉ định.

Ví dụ sau đây tạo một tệp văn bản mới sau đó viết một tiêu đề văn bản ngắn bên trong nó. Sau khi đóng tệp này, sự tồn tại của nó được xác nhận bằng hàm file_exist () lấy tên tệp làm đối số
<?php
   $filename = "/home/user/guest/newfile.txt";
   $file = fopen( $filename, "w" );
   
   if( $file == false ) {
      echo ( "Error in opening new file" );
      exit();
   }
   fwrite( $file, "This is  a simple test\n" );
   fclose( $file );
?>
<html>
   
   <head>
      <title>Writing a file using PHP</title>
   </head>
   
   <body>
      
      <?php
         $filename = "newfile.txt";
         $file = fopen( $filename, "r" );
         
         if( $file == false ) {
            echo ( "Error in opening file" );
            exit();
         }
         
         $filesize = filesize( $filename );
         $filetext = fread( $file, $filesize );
         
         fclose( $file );
         
         echo ( "File size : $filesize bytes" );
         echo ( "$filetext" );
         echo("file name: $filename");
      ?>
      
   </body>
</html>

Nó sẽ tạo ra kết quả sau


Chúng tôi đã trình bày tất cả các chức năng liên quan đến đầu vào và đầu ra tệp trong chương Chức năng hệ thống tệp PHP .

lập trình PHP cho các nhà phát triển PERL

Chương này sẽ liệt kê những điểm tương đồng và khác biệt chính giữa PHP và PERL. Điều này sẽ giúp các nhà phát triển PERL hiểu PHP rất nhanh...