Я хочу запустить скрипт Python из PHP.
это мой код Python. Он сохраняется в / home / pi и имя файла hello.py
#! /usr/bin/python
import bluetooth
bd_addr="xx:xx:xx:xx:xx:xx"port=1
sock=bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((bd_addr.port))
data=""while 1:
try:
data +=sock.recv(1024)
data_end=data.find('\n')
if data_end!=-1:
rec=data[:data_end]
print datas
data=data[data_end+1:]
except KeyboardInterrupt:
break
А вот и мой PHP-код. Он сохраняется в / var / www / html и имя файла php.php
<?php
$output=shell_exec('ls -l /home/pi/hello.py');
echo "<pre>$output</pre>";
?>
И я вставляю localhost / php.php в Chrome, он отображает
-rw-r-r- 1 pi pi 378 Mar 8 12:07 /home/pi/hello.py
в чем проблема??
Как указал Джон Стирлинг, вы используете «ls» только для вывода списка содержимого папки или для проверки наличия файла в этой папке. Чтобы запустить код Python, вам нужно изменить файл PHP на что-то вроде этого:
<?PHP
$output=shell_exec('./hello.py');
echo "<pre>$output</pre>";
?>
ls
Команда используется для вывода списка файлов в каталоге или для получения информации о файле. Вы ls
-ing в вашем файле Python и результат правильный. Он предоставляет вам информацию о файле.
Просто поместите имя файла внутри shell_exec
то есть /home/pi/hello.py
, Если вы не хотите зависеть от Шебанга и команды python
доступен в вашей оболочке, то вы можете использовать python /home/pi/hello.py
вместо голого /home/pi/hello.py
,
Опять же, вы использовали переменную datas
с print
где вы намеревались использовать data
— почини это.
PHP-код:
<?php
$output=shell_exec('python /home/pi/hello.py');
echo "<pre>$output</pre>";
?>
или же:
<?php
$output=shell_exec('/home/pi/hello.py');
echo "<pre>$output</pre>";
?>
код Python:
#! /usr/bin/python
import bluetooth
bd_addr="xx:xx:xx:xx:xx:xx"port=1
sock=bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect((bd_addr.port))
data=""while 1:
try:
data +=sock.recv(1024)
data_end=data.find('\n')
if data_end!=-1:
rec=data[:data_end]
print data
data=data[data_end+1:]
except KeyboardInterrupt:
break