gpt4 book ai didi

c - 如何从 C 调用 PHP CLI?

转载 作者:太空宇宙 更新时间:2023-11-04 07:35:11 25 4
gpt4 key购买 nike

我正在编写一个向 PHP CLI 发送请求的应用程序。然而,当我尝试运行该应用程序时,php 提示找不到要运行的脚本。

相关代码如下:

char *params[] = {
"/usr/bin/php",
"-f /var/www/test/php/tracker/gps-upload-sh.php",
imei,
rmc,
(char *) 0
};
signal(SIGCHLD, SIG_IGN);
pid_t pID = fork();
if (pID == 0) {
if(execv("/usr/bin/php", params) == -1) {
perror("Failed to call php.");
_exit(1);
}
_exit(0);
}

输出:

$ ./socket
Could not open input file: /var/www/test/php/tracker/gps-upload-sh.php
^C

文件:

$ ls -l /var/www/test/php/tracker/gps-upload-sh.php
-rwxr-xr-x 1 onik onik 6707 2012-03-09 16:00 /var/www/test/php/tracker/gps-upload-sh.php

直接运行(其中REQUIRED_PARAMS与execv传递过来的相同):

$ php -f /var/www/test/php/tracker/gps-upload-sh.php [REQUIRED_PARAMS]
OK

怎么办?

最佳答案

尝试将 -f 和路径分成单独的参数:

char *params[] = {
"/usr/bin/php",
"-f",
"/var/www/test/php/tracker/gps-upload-sh.php",
imei,
rmc,
(char *) 0
};

(这是你的 shell 所做的,你在两者之间放置一个空格。)


或者,删除 -f 和路径之间的空格:

char *params[] = {
"/usr/bin/php",
"-f/var/www/test/php/tracker/gps-upload-sh.php",
imei,
rmc,
(char *) 0
};

关于c - 如何从 C 调用 PHP CLI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9663393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com