Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP से Python प्रोग्राम चलाना


PHP में shell_exec() फंक्शन का उपयोग करके Python स्क्रिप्ट निष्पादित की जा सकती है। यह कमांड को shell के माध्यम से चलाता है और आउटपुट को string के रूप में वापस करता है।

मूल सिंटैक्स

<?php
$scriptPath = '/path/to/your/script.py';
$command = escapeshellcmd($scriptPath); // सुरक्षा के लिए आवश्यक
$output = shell_exec($command);
echo $output;
?>

पूर्ण उदाहरण: आर्गुमेंट्स के साथ

<?php
// Python स्क्रिप्ट: script.py
// import sys
// name = sys.argv[1] if len(sys.argv) > 1 else "World"
// print(f"Hello, {name}!")

$script = '/var/www/html/scripts/greet.py';
$name = 'अमित';

// आर्गुमेंट्स को सुरक्षित रूप से एस्केप करें
$cmd = escapeshellcmd($script) . ' ' . escapeshellarg($name);

$output = shell_exec($cmd);
echo "Python आउटपुट: " . trim($output);
?>

महत्वपूर्ण सुरक्षा और कॉन्फ़िगरेशन

  • escapeshellcmd() और escapeshellarg() हमेशा उपयोग करें
  • वेब सर्वर यूजर (www-data, apache, nginx) को स्क्रिप्ट और डायरेक्टरी पर execute permission होनी चाहिए
  • disable_functions में shell_exec अक्षम हो सकता है (shared hosting में आम)
  • लंबी चलने वाली स्क्रिप्ट के लिए proc_open() या job queue (Redis/RabbitMQ) बेहतर है

उन्नत: proc_open() के साथ Real-time Output

<?php
$cmd = 'python3 /path/to/long_script.py';
$descriptors = [
    0 => ['pipe', 'r'],  // stdin
    1 => ['pipe', 'w'],  // stdout
    2 => ['pipe', 'w']   // stderr
];

$process = proc_open($cmd, $descriptors, $pipes);

if (is_resource($process)) {
    // Real-time output पढ़ें
    while ($line = fgets($pipes[1])) {
        echo $line . "
"; flush(); // ब्राउज़र को तुरंत भेजें } fclose($pipes[1]); $returnCode = proc_close($process); echo "निकास कोड: $returnCode"; } ?>

सामान्य समस्याएं और समाधान

समस्यासमाधान
Permission deniedchmod +x script.py और वेब यूजर को ownership दें
Python नहीं मिलापूर्ण पथ उपयोग करें: /usr/bin/python3
कोई आउटपुट नहींPython में print(..., flush=True) उपयोग करें
Timeoutset_time_limit() बढ़ाएं या async processing उपयोग करें
  1. Python Program कैसे चलाएं? Python Program कैसे चलाएं?

    Code लिखने के बाद, हमें code को execute करके output प्राप्त करने के लिए run करने की आवश्यकता होती है। Program चलाने पर, हम जांच सकते हैं कि लिखा गया code सही है और desired output produce करता है। Python program चलाना काफी आसान काम है। IDLE पर चलाएं IDLE पर python program चलाने के लिए, दिए गए steps क

  1. पायथन प्रोग्राम: स्ट्रिंग से nth कैरेक्टर हटाएं पायथन प्रोग्राम: स्ट्रिंग से nth कैरेक्टर हटाएं

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट हमें एक स्ट्रिंग दी गई है, हमें दी गई स्ट्रिंग से i-वें इंडेक्स वाले कैरेक्टर को हटाना है और इसे प्रदर्शित करना है। पायथन में किसी भी स्ट्रिंग में, इंडेक्सिंग हमेशा 0 से शुरू होती है। मान लीजिए हमारे पा

  1. - पायथन प्रोग्राम: IP एड्रेस से लीडिंग ज़ीरोज़ हटाना

    IP एड्रेस नीचे दिया गया है, हमारा कार्य IP एड्रेस से लीडिंग ज़ीरोज़ हटाना है। पहले हम दिए गए स्ट्रिंग को . से स्प्लिट करते हैं और फिर इसे इंटीजर में कन्वर्ट करते हैं और लीडिंग ज़ीरोज़ हटाते हैं फिर उन्हें वापस स्ट्रिंग में जोड़ते हैं।उदाहरणInput: 200.040.009.400 Output: 200.40.9.400एल्गोरिदमचरण 1: I