【发布时间】:2011-06-01 20:20:17
【问题描述】:
好的,我正在尝试创建一个使用 PHP shell 脚本的电子邮件记录器。我已经设置了 CPanel 来将电子邮件传送到我的脚本。我确信这一切都配置正确。但是我遇到了脚本问题,以及从 shell 运行它时的任何脚本。
这是一个例子。
#!/usr/local/bin/php –q
<?php
/* Read the message from STDIN */
$fd = fopen("php://stdin", "r");
$email = ""; // This will be the variable holding the data.
while (!feof($fd)) {
$email .= fread($fd, 1024);
}
fclose($fd);
/* Saves the data into a file */
$fdw = fopen("mail.txt", "w+");
fwrite($fdw, $email);
fclose($fdw);
/* Script End */
?>
真的很简单,对吧?从 STDIN 读取并写入文件...我认为出了点问题,由于某种原因无法读取 STDIN。托管服务提供商允许它,allow_url_open 和allow_url_include 都打开。
通过 SSH 执行脚本时,出现以下错误: 无法打开输入文件:âq
所以我又一次认为这是脚本告诉我的,这是无法从 STDIN 读取的
所以我只尝试了一个简单的脚本。
#!/usr/local/bin/php –q
<?php
echo 'Hello World';
?>
同样的事情: 无法打开输入文件:âq
所以看来 PHP 程序告诉我它无法打开脚本?该脚本位于 $HOME/mail/forward (CHMOD 755),脚本本身为 CHMOD 755,文件 mail.txt 为 CHMOD 755 我真的很难过。
【问题讨论】:
-
php 代码用什么文本编辑器? “-q”中的“-”看起来像一个破折号而不是一个减号。