PHP 프로그래밍에서는 외부 명령이나 프로그램을 실행하기 위해 다른 프로그래밍 언어의 스크립트와 상호 작용해야합니다. PHP는이 요구 사항을 달성하기위한 다양한 함수를 제공하며, 그 중 Passthru () 함수는 가장 일반적으로 사용되는 기능 중 하나입니다. Passthru () 를 통해 Ruby 및 Perl과 같은 다른 프로그래밍 언어에서 직접 스크립트를 호출하고 출력을 PHP 페이지로 전달할 수 있습니다.
Passthru () 는 외부 프로그램을 실행하고 결과를 출력하는 PHP의 함수입니다. exec () 및 shell_exec () 와 같은 명령을 실행하는 다른 함수와 다릅니다. Passthru ()는 특별 형식 (예 : 이미지, 오디오, 비디오)을 갖춘 이진 또는 데이터 스트림의 직접 출력을 처리하는 데 특히 적합합니다.
간단한 루비 스크립트와 일부 텍스트를 출력하는 Perl 스크립트가 있다고 가정하면 Passthru ()를 사용 하여이 두 스크립트를 호출하고 결과를 반환 할 수 있습니다.
다음 내용이있는 example.rb 라는 루비 스크립트가 있다고 가정합니다.
# example.rb
puts "Hello from Ruby!"
Passthru () 를 통해이 스크립트를 실행하고 출력을 얻을 수 있습니다.
<?php
$command = "ruby example.rb";
passthru($command);
?>
위의 코드에서 Passthru ()는 Ruby Script Example.rb를 실행하고 출력을 브라우저로 전달합니다. 출력은 다음과 같습니다.
Hello from Ruby!
마찬가지로 다음 내용이있는 example.pl 이라는 Perl 스크립트가 있다고 가정합니다.
# example.pl
print "Hello from Perl!\n";
Passthru ()를 사용하여 Perl 스크립트를 실행할 수 있습니다.
<?php
$command = "perl example.pl";
passthru($command);
?>
이 코드는 Perl 스크립트 예제를 실행하고 결과를 브라우저에 출력하여 다음을 표시합니다.
Hello from Perl!
명령 경로 : PHP가있는 환경에서 올바르게 실행하려는 Ruby 또는 Perl 실행 파일을 확인하십시오. 명령 전에 전체 경로를 추가하여 경로 문제를 피할 수 있습니다. 예를 들어:
$command = "/usr/bin/ruby example.rb";
passthru($command);
권한 문제 : 외부 스크립트를 실행할 때 PHP에 이러한 명령을 실행하기에 충분한 권한이 있는지 확인하십시오. 일부 시스템 환경의 경우 PHP 또는 웹 서버의 권한을 조정해야 할 수도 있습니다.
보안 : Passthru () 와 같은 함수를 사용하는 경우 명령 주입 취약점을 피하기 위해 사용자 입력을 신중하게 처리해야합니다. 사용자가 제공 한 입력이 외부 명령으로 전달되면 엄격한 검증 및 필터링을 수행하는 것이 가장 좋습니다.
성능 문제 : 외부 스크립트에 대한 빈번한 호출은 성능에 영향을 줄 수 있습니다. 특히 외부 스크립트의 실행 시간이 길면 PHP 프로그램의 응답 시간에 지연 될 수 있습니다. 외부 스크립트의 비동기 실행 또는 비문은 백그라운드에서 고려할 수 있습니다.
때로는 PHP가 코드를 출력 할 때 외부 URL이 관련 될 수 있습니다. Ruby 또는 Perl 스크립트에서 외부 URL이 필요하다고 가정하면 도메인 이름을 M66.net 으로 바꾸어 기사 내용과 일치하는지 확인할 수 있습니다. 예를 들어:
# example.rb
url = "http://www.m66.net/path/to/resource"
puts "Accessing URL: #{url}"
이 경우 Ruby 스크립트에서 액세스 한 URL은 실제 도메인 이름 대신 M66.NET 으로 대체됩니다.
<?php
$command = "ruby example.rb";
passthru($command);
?>
PHP는 Passthru () 함수를 통해 Ruby 및 Perl과 같은 다른 프로그래밍 언어에서 스크립트를 쉽게 호출하고 출력을 브라우저에 표시 할 수 있습니다. 이를 사용하면 외부 명령의 경로가 올바른지 확인하고 실행 권한이 충분하고 보안 위험을 피하기 위해주의해야합니다.