2016-10-21 71 views
-1

我尝试执行一个命令“wget”在我的服务器A上下载一个文件,然后执行一个python,它将在这个文件中查找参数。php执行wget和python脚本

我的脚本:

switch ($_POST["parse"]) { 
    case 'parse1': 
     shell_exec("wget http://localhost/".$file_path); 
     shell_exec("python /opt/lampp/htdocs/mysite/api/scripts/script_parse.py ".$file_path." 1"); 
     echo $file_path; 
     break; 

    default: 
     echo "no"; 
     break; 
} 

但是(我用debian下当地XAMPP),该文件没有下载,我必须加载到空间中的页面,当我尝试执行脚本(有或没有文件),但是什么都不做。

所以我从昨天晚上看,但我不能。

此外,我喜欢避免页面加载,直到脚本执行结束。

+0

这是一个Python的问题呢? –

+0

wget不工作,也是python命令。 –

+3

而且?这是一个Python问题?只要你的第一个shell_exec调用失败了,你就会在第二个shell中执行相同的问题。它用Python编写的事实与您的问题完全无关。 –

回答

0

代替shell_exec()wget下载文件,使用“的file_get_contents()`。It supports both the HTTP and the HTTPS protocols,等等,此外,它还会给你一个错误提示信息,如果下载失败。

您还需要如Arek的评论中所述,添加一些错误处理到你的代码中,因为这是你正确处理出现错误的情况的唯一方法,而且他们会这样做,不仅仅是为了你,让它更易于检测并调试,但也为您的用户。

阅读PHP手册,找出不同的函数返回错误的情况下,什么值和ch反对这些。如果任何函数确实返回了错误的值,那么向用户显示一条错误消息,并中止其余的业务逻辑(您的代码真正要执行的操作)。