Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyelesaikan masalah php exec bercelaru

Bagaimana untuk menyelesaikan masalah php exec bercelaru

藏色散人
藏色散人asal
2021-12-31 11:15:073240semak imbas

Penyelesaian kepada kod php exec bercelaru: 1. Jalankan "exec("python cmd.py",$str);"; 2. Lulus "iconv("GBK", "UTF-8", $res );" kaedah untuk menukar pengekodan.

Bagaimana untuk menyelesaikan masalah php exec bercelaru

Persekitaran pengendalian artikel ini: sistem windows7, versi PHP7.1, komputer DELL G3

Cara menyelesaikan php exec bermasalah?

php exec atau shell_exec tidak boleh mengembalikan aksara Cina yang kacau

Pada asalnya saya ingin melaksanakan:

exec("python cmd.py",$str);
var_dump($str);

Output fail cmd.py mengandungi Cina, dan hasilnya menunjukkan Seperti yang ditunjukkan dalam gambar di bawah:

Bagaimana untuk menyelesaikan masalah php exec bercelaru

Ramai blogger mengatakan bahawa ia boleh diselesaikan dengan menetapkan pengekodan yang telah ditetapkan, seperti menambah pengekodan sebelum melaksanakan perintah dan kemudian melaksanakannya:

$locale='en_US.UTF-8';
setlocale(LC_ALL,$locale);
putenv('LC_ALL='.$locale);
exec("python cmd.py",$str);
var_dump($str);

Setelah mencubanya, saya dapati masalah itu masih wujud dan tiada kesan. . Setelah sekian lama mencari di Google, akhirnya saya temui jalan penyelesaian, jadi saya tidak berani meninggalkannya, jadi saya menyiarkannya untuk dikongsi. .

Tiada omong kosong, teruskan sahaja. . .

exec:
exec("python cmd.py",$str);
foreach($str as $res)
{
    $str = iconv("GBK", "UTF-8", $res);
}
echo $str;
shell_exec:
$res = shell_exec("python cmd.py");
echo iconv("GBK", "UTF-8", $res);

Kedua-dua pemulangan exec dan shell_exec di atas boleh memaparkan bahasa Cina!

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah php exec bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn