Kết hợp php và python

Nếu bạn có 1 đoạn script viết bằng Python, bạn muốn thực thi đoạn script này trong PHP và hiển thị nội dung kết quả lên Web thì cách đơn giản nhất là dùng hàm escapeshellcmd() và hàm shell_exec() ở PHP.

Hàm escapeshellcmd() dùng để thoát bất kỳ ký tự nào trong chuỗi được dùng để đánh lừa lệnh shell thực thi các lệnh tùy ý. Hàm này có tác dụng đảm bảo mọi dữ liệu từ người dùng đều được thoát trước khi chuyển đến thực thi qua hàm exec() hoặc hàm system() hoặc tới toán tử backtick. Đại loại hàm này dùng để chuyển các ký tự lạ trong mã Python để thực thi ở PHP mà không cần phải kiểm tra.

Hàm shell_exec() có tác dụng thực thi tất cả lệnh theo cơ chế shell (dòng lệnh) và trả về chuỗi kết quả. Đoạn mã Python thường trả kết quả bằng hàm print() vì vậy hàm shell_exec() có tác dụng thực thi và gom các kết quả đó để hiển thị trên PHP.

Trong ví dụ này, bạn có thể sử dụng gói XAMPP, WAMPP,… để thử nghiệm hoặc bất kỳ hosting PHP nào có support Python, đa số hosting mua đều hỗ trợ Python.

Bước 1. Tạo tập tin test.php

Bạn tạo 1 tập tin test.php với nội dung như sau:

<?php 

$command = escapeshellcmd('test.py'); //Chuyển mã trong tập tin test.py thành các lệnh
$output = shell_exec($command); // Lấy kết quả trả về biến $output
echo $output; // Xuất kết quả

?>

Bước 2. Tạo tập tin test.py

Bạn tạo tập tin test.py với nội dung như sau. Lưu ý đặt tập tin này cùng thư mục trên host với tập tin test.php.

a = 5
b = 6
print('<h2>DAMMIO.COM</h2>')
print('<b>Ket qua a + b bang Python:</b> ', a + b)

Bước 3. Xem kết quả

Sau đó, bạn có thể chạy tập tin test.php bằng cách mở trình duyệt. Ví dụ này thử nghiệm bằng XAMPP trên máy cục bộ, do đó đường dẫn thử nghiệm là http://localhost/test.php.

Kết hợp php và python

Qua bài này, bạn thấy được ví dụ cho thấy sự kết hợp tuyệt vời giữa PHP và Python. Chúc bạn may mắn và thành công!

Có hàng chục ngôn ngữ lập trình tuyệt vời để học, để sử dụng. Và so sánh các ngôn ngữ để tìm ra ngôn ngữ tốt nhất cũng rất thú vị.

Kết hợp php và python

So sánh PHP với Python


 

Hôm nay chúng ta sẽ so sánh PHP với Python để tìm ra điểm khác biệt, ưu điểm của PHP so với Python và ngược lại.

Đâu là ngôn ngữ lập trình tốt nhất cho ứng dụng / trang web của bạn? Đâu là ngôn ngữ lập trình giúp bạn tiết kiệm thời gian nhất?

  • Lưu ý: Chỉ so sánh trong bối cảnh Lập trình Website.

Chúng ta sẽ cùng so sánh 4 điểm để tìm ra đó là sự lựa chọn phù hợp nhất cho bạn trong bài viết này:

  • Tính dễ cài đặt
  • Khả năng quản lý thư viện
  • Khả năng quản lý môi trường
  • Tính dễ học
  • Tốc độ

1. So sánh khả năng cài đặt

Kết hợp php và python

So sánh Khả năng cài đặt của PHP và Python

Nếu bạn tự mình xây dựng một ứng dụng / trang web nhỏ, PHP có ba lợi thế đơn giản.

Khả năng cài đặt là một trong số đó. Nó chạy tốt trên Windows (Native hoặc WSL), OS X và Linux và có thể được tìm thấy trên nhiều trang web lưu trữ được chia sẻ trên khắp thế giới, thường với một mức phí tối thiểu.

Cài đặt Python có thể mất nhiều bước hơn. Nếu bạn cài đặt trên OS X, thì cần một phiên bản Python giành cho OS X.

Nhưng tin xấu là,

Nó đã lỗi thời và không phù hợp để phát triển ứng dụng.

Tin mình đi, bạn sẽ không muốn cài đặt các package mới trên hệ thống Python. Vì bạn cần cài đặt một phiên bản mới để đảm bảo hệ thống của bạn ổn định nhất có thể.

Cài đặt Python trên Windows thì đơn giản hơn. Cũng chỉ cần Next mà thôi.

  • Xem ngay: Hướng dẫn Cài đặt Python

Cách phổ biến nhất là sử dụng trình quản lý Windows package như Chocolatey khi bạn bắt đầu cài đặt. Nếu bạn lập kế hoạch cho một nhóm, có thể công việc cần phải làm sẽ tăng thêm một chút.

Tuy nhiên, nếu nhóm của bạn trên Linux, bạn sẽ không gặp vấn đề gì khi cài đặt Python.

Kết luận: PHP thắng vì PHP có thể dễ dàng cài đặt ở mọi hơi hơn Python.

2. So sánh Khả năng Quản lý thư viện

Kết hợp php và python

So sánh Khả năng quản lý thư viện của PHP và Python

Python có một lợi thế mạnh mẽ so với PHP trong vòng này.

Python sử dụng Pip (một từ viết tắt đệ quy viết tắt của từ "Pip Installs Python) để quản lý các package.

Pip làm cho việc quản lý các thư viện khác nhau trong một ứng dụng Python trở nên đơn giản, nó nhanh chóng và các yêu cầu dự án của bạn được phân tích rất dễ dàng, nhanh chóng.

Là một Lập trình viên Python, mình tin rằng Pip là một công cụ thiết yếu cần có.

Quản lý thư viện PHP của PHP là không mạnh.

PHP 7 đã giới thiệu Composer, đây là một công cụ tuyệt vời, hầu hết là tính năng hoàn chỉnh và (khi được kết hợp với một công cụ như Packagist), bạn sẽ thấy việc quản lý gói gần ngang tầm với Python.

Nhưng thật không may, tuổi đời của Composer vẫn còn non trẻ để nói rằng bằng hoặc hơn Pip.

Vào một điểm cộng nữa, Python có nhiều package mạnh mẽ hơn và các công cụ của chúng dễ cài đặt và sử dụng hơn một chút tại thời điểm này.

Kết luận: 1 điểm cho Python

3. Quản lý môi trường

Kết hợp php và python

So sánh Khả năng quản lý môi trường của PHP và Python

Nếu bạn xây dựng các ứng dụng của mình hoàn toàn trên các container bằng cách sử dụng một cái gì đó như Docker, có lẽ bạn không cần phải lo lắng về việc quản lý môi trường.

Vì vậy, xin chúc mừng! Cả 2 đều không có điểm.

Nhưng nếu bạn không sử dụng Docker hay cái gì đó tương tự cho dự án của mình thì.

Python, một lần nữa, có một ứng dụng tương tự tốt nhất để quản lý môi trường, đó chính là Virtualenv.

Virtualenv là một hệ thống được sử dụng để cài đặt nhiều phiên bản Python cạnh nhau và chuyển đổi giữa chúng một cách nhanh chóng.

Virtualenv là một trong những công cụ quản lý môi trường ban đầu và đã được duy trì phát triển tích cực trong hơn một thập kỷ. Đây là một công cụ mạnh, và quan trọng là đã được kiểm chứng.

PHP thì không may mắn như thế.

Có một công cụ tương tự như virtualenv cho PHPP là virtPHP... Nhưng dự án đó đã được duy trì phát triển. Các nhà phát triển virtPHP còn đề nghị sử dụng các container để thay thế cơ mà.

Nhưng, đây là lời khuyên đúng vì container có tất cả các loại lợi thế cho các lập trình viên triển khai và vận hành.

Tuy nhiên, vẫn có một điểm trừ, container không phù hợp với tất cả các môi trường. Ở điểm này thì PHP gặp bất lợi.

Kết luận: 1 chiến thắng nữa giành cho Python trong việc quản lý môi trường.

Tỷ số
 

4. So sánh Tính dễ học của Python với PHP

Kết hợp php và python

So sánh tính dễ học của PHP và Python

Python PHP thực sự rất giống nhau. Cả hai đều là ngôn ngữ thông dịch hướng đối tượng có thể chạy trên nhiều hệ điều hành.

Chúng có thể được lập trình một cách linh hoạt và có sự hỗ trợ của nhiều IDE tuyệt vời. Cuối cùng, cả Python và PHP đều nổi bật khi nói về cú pháp.

PHP yêu cầu bạn tiền tố tất cả các biến có dấu $ và sử dụng toán tử -> để chỉ ra một phương thức được gọi trên một đối tượng. Điều này làm cho nó nổi bật so với các ngôn ngữ kiểu C khác.

Cú pháp của Python không giống với nhiều ngôn ngữ khác. Nó loại bỏ các dấu ngoặc nhọn và thay vào đó nó sử dụng khoảng trắng.

Thế thì, Python hay PHP dễ học hơn?

Về kiến thức, cú pháp cơ bản thì không nghi ngờ rằng Python dễ học hơn.

  • Nếu thích thì HỌC PYTHON ngay. Không phải nghĩ nhiều cho mất công.

Nhưng nói về các framework, thư viện thì rất khó đánh giá chính xác.

PHP cũng có một số lợi thế trong việc học tập, sử dụng.

  • HỌC LẬP TRÌNH PHP dễ dàng, nhanh chóng trong với sự hỗ trợ của giảng viên doanh nghiệp.

PHP có một con dao hai lưỡi trong khái niệm mảng của nó, nó hoạt động như một sự kết hợp giữa kiểu dữ liệu listdictionary trong Python.

  • Tìm hiểu về LIST TRONG PYTHON
  • Tìm hiểu về DICTIONARY TRONG PYTHON

Nó có một lợi ích vì nếu bạn hiểu cách sử dụng một mảng, bạn có thể làm được rất nhiều thứ trong PHP.

Tuy nhiên, nó cũng là một tiêu cực vì PHP thường thiếu các triển khai chất lượng của các loại dữ liệu tập trung khác.

Nếu bạn đang cố gắng thao tác với dữ liệu không phù hợp với mảng, thì sử dụng PHP có nghĩa là bạn có thể cần phải viết kiểu dữ liệu của riêng mình.

  • Trong Python thì đây không phải là vấn đề.

Python có nhiều kiểu dữ liệu tích hợp sẵn sàng.

  • Thách thức với Python chỉ là cần phải biết lựa chọn sử dụng công cụ nào cho công việc cụ thể nào? Nưng khi bạn có kinh nghiệm thì điều này sẽ được giải quyết dễ dàng mà thôi.

Python có một nhược điểm là quá trình chuyển đổi Python 2 sang Python 3 không tương thích ngược.

Mặc dù vậy, mình nghĩ cả PHP và Python xứng đáng có 1 điểm ở phần so sánh tính dễ học.

Tỷ số
 

5. So sánh chung về tốc độ của Python so với PHP

Kết hợp php và python

So sánh tốc độ của PHP và Python

Có nhiều vấn đề làm cho các ứng dụng web chậm lại không liên quan đến ngôn ngữ lập trình.

Ví như, vấn đề truy vấn cơ sở dữ liệu chậm làm hỏng mọi ngôn ngữ lập trình. Dựa vào các truy vấn internet quá mức hoặc đọc nhiều thông tin từ đĩa sẽ làm ứng dụng hoặc trang web chậm đi.

Nhưng nhìn chung, trong hầu hết các trường hợp, PHP là ngôn ngữ lập trình có tốc độ nhanh hơn Python.

Core PHP Team đã làm rất nhiều việc để tăng tốc PHP và với PHP 7, họ đã thành công.

PHP nổi tiếng bởi nó khởi động lại toàn bộ ứng dụng của bạn mỗi khi request web bắt đầu.

Đối với hầu hết các ứng dụng, đó không phải là một vấn đề. Tuy nhiên, nó có thể gặp rắc rối nếu bạn làm việc với một ứng dụng cần chia sẻ tài nguyên qua các request.

Bởi vì PHP thiết lập và phá hủy toàn bộ ứng dụng theo mọi request, việc chia sẻ tài nguyên có thể gặp khó khăn.

Đối với Python, nó lại không phải là một vấn đề lớn đối, nhưng công bằng mà nói, vấn đề này lại là một thứ mà hầu hết các ứng dụng web không cần phải làm.

Điều này cũng rất quan trọng để nhớ rằng bất kể bạn sử ngôn ngữ lập trình nào cũng không đảm bảo rằng ứng dụng của bạn sẽ nhanh.

Nếu bạn đang xây dựng một ứng dụng web và bạn muốn nó có hiệu năng tốt nhất, thì bạn nên cắm vào một công cụ như Retrace. Nó sẽ giúp bạn xác định các điểm có vấn đề trong ứng dụng của bạn và tăng tốc chúng cho dù bạn chọn ngôn ngữ nào đi nữa.

Kết luận: Ở phần tốc độ. PHP chiến thắng Python.
 

Tỷ số
 

Tổng kết So sánh PHP với Python

Chúng ta đã có tỷ số Hòa! Thành thật mà nói, tỷ số sau khi so sánh PHP với Python mình cảm thấy rất đúng. Cả PHP 7 và Python 3 đều là những lựa chọn rất tốt để xây dựng một trang web vào năm 2019.

Vậy, khi bắt buộc phải lựa chọn giữa PHP Python, bạn nên chọn cái nào?

  • Vâng, điều đó không phụ thuộc nhiều vào bản thân ngôn ngữ. Chọn ngôn ngữ nào cho dự án nào phụ thuộc vào dự án cần gì.

Nếu bạn có cần chia sẻ môi trường trên cùng một PC => Python gần như chắc chắn là câu trả lời đúng.

Trong team của bạn có người biết Lập trình PHP tốt, Python thì chưa ai dùng qua => Chắc chắn PHP sẽ có lợi thế.

Ứng dụng của bạn có cần hỗ trợ Unicode không => Nếu có, nên chọn Python.

  • Hãy nhớ là: Bất kể bạn đi theo hướng nào, vấn đề không ở PHP hay là Python.
  • Kinh nghiệm: Hãy cứ làm đi. Làm được web mới quan trọng.

Còn đối với một tỷ số Hòa như thế, chắc chắn bạn chọn sử dụng PHP hay Python làm Web cũng đều OK. Cùng lắm thì đập đi làm lại mà thôi =)))

---

HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI

Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!

Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội

SĐT: 02435574074 - 0914939543

Email:

Fanpage: https://facebook.com/NIIT.ICT/

#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp