Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyelesaikan masalah php exec bercelaru
Penyelesaian kepada kod php exec bercelaru: 1. Jalankan "exec("python cmd.py",$str);"; 2. Lulus "iconv("GBK", "UTF-8", $res );" kaedah untuk menukar pengekodan.
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:
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!