2013-02-26 75 views
0

我在想我的简单popen()调用只返回布尔值TRUE而不是资源。Php popen只返回bool(true)而不是指针

因此,以下的fputs()抛出像一个警告 “警告:fputs()的期望参数1是资源,布尔给定[...]”

如在PHP手册所描述的,我期望一个资源/指针或FALSE作为回报。

这是我的例子:

$path = 'C:\path\to\oracle\product\11.2.0\server\bin\sqlplus.exe'; 
$ph = popen($path,'w') || die ("Program not found"); 
fputs($ph, "username/password"\n"); 

任何人的帮助?

回答

1

变化:

$ph = popen($path,'w') || die ("Program not found");$ph = popen($path,'w');

||后删除一切和尝试。

也有多余的报价在这里:fputs($ph, "username/password"\n");删除一个fputs($ph, "username/password\n");

+0

嗯,你说得对。这是非常明显的...... – derphil 2013-02-26 09:35:13

+0

@derphil:酷:D – 2013-02-26 09:36:16

+0

现在,我很烦恼自己;) – derphil 2013-02-26 09:39:28

0

使用||语法还是可以的,只是加括号上半年。

($ph = popen($path,'w')) || die ("Program not found");