我想学习php
我在win8 64位机器上安装了Wampserver2.4。
服务器配置
Apache版本:2.4.4
PHP版本:5.4.12
在第一课中,我遇到了这个错误:(
Notice: Use of undefined constant STDIN - assumed 'STDIN' in C:\wamp\www\study\sayHello.php on line 5
这是文件“sayHello.php”中的php代码
<?php
echo "Hello there. So I hear you're learning to be a PHP programmer!\n";
echo "Why don't you type in your name for me:\n";
$name = trim(fgets(STDIN));
echo "\nThanks, " . $name . ", it's really nice to meet you.\n\n";
?>
当您试图使用
Artisan::调用(“迁移”);
似乎是时候产生这些类型的错误了。为了解决这个问题,您可以简单地将代码替换为
Artisan::调用('migrate',['--force'=
如果正在生产,请确保使用--force标志。
只有CLI(命令行)SAPI定义输入/输出常量,例如STDIN、STDOUT和STDERR,纯粹是为了方便该环境。
如其他答案所述,您可以在PHP代码中简单地定义这些常量。您还可以选中defined(),以避免通过CLI调用时出错。例如:
<?php
if (!defined('STDIN')) {
define('STDIN', fopen('php://stdin', 'r'));
}
但是,请记住,php://stdin
在非CLI SAPI(如Apache或FPM)中可能无法按预期方式工作。例如,要在通过FPM执行时访问原始POST主体,可以使用php://input
。
PHP有许多不同的SAPI(服务器应用程序编程接口),允许您在各种环境中执行PHP代码,例如Web服务器、电子邮件服务器或命令行(CLI)。示例包括:
每个SAPI的初始条件和行为可能略有不同。CLI SAPI和其他SAPI之间的一些其他差异包括:
header()
无效
只需在文件顶部定义STDIN
常量,
define('STDIN',fopen("php://stdin","r"));
问题内容: 我有以下程序: 我面临的问题是,一旦在STDIN上检测到输入,消息“ User input- stdin”就继续打印…为什么在循环检查哪一个描述符已输入的同时,它一次又不打印一次? 谢谢。 问题答案: 该功能仅在有可用输入时告诉您。如果您实际上并没有消耗它,那么select将继续直接下降。
stdin 设备文件 这里的stdin设备文件实际上就是指的键盘。这个设备文件是一个只读设备,如果写这个设备,就会出错。接下来我们看看stdin设备的相关处理过程。 初始化 stdin设备文件的初始化过程主要由stdin_device_init完成了主要的初始化工作,具体实现如下: static void stdin_device_init(struct device *dev) { de
问题内容: 我正在制作一个C ++共享库,当我编译使用该库的主exe时,编译器会给出以下信息: 库代码: fooclass.h fooclass.cpp 编译: 主要:main.cpp 编译: 该机器是Ubuntu Linux 12 谢谢! 问题答案: 是问题。最新版本的GCC要求您按照相互依赖的顺序放置目标文件和库-因此,根据经验法则,必须将库标志作为链接器的最后一个开关;即写 代替。
问题内容: 我试图重定向java中子进程的stdin和stdout,最终我将把输出转到JTextArea或其他东西。 这是我当前的代码, 输出如下所示: 我期望看到输出“ Hello World”字符串。也许是因为父进程的存活时间不够长? 我还希望能够发送和接收多个命令。 问题答案: 在尝试侦听输入流之前,您已经尝试写入输出流,因此您什么也没看到是有道理的。为使此成功,您将需要对两个流使用单独的线
如何使用fifo重定向进程的stdin? 使用system d,我正在启动一个不经常需要通过stdin发送命令的服务。为了克服这个问题,我尝试了以下方法: 我可以使用以下命令运行命令。 我遇到的问题是,这似乎只适用于一个命令。在运行这个命令一次之后,所有其他写入fifo的调用似乎都被挂起,服务器再也不会处理其他任何事情。 如何使用fifo将输入重定向到守护进程的stdin?
问题内容: 有没有办法检查输入流()是否有数据? 从GO的初始stdin中读取帖子?显示了如何读取数据,但是不幸的是,如果没有数据通过管道传送到stdin中,则会阻塞。 问题答案: os.Stdin与其他任何“文件”一样,因此您可以检查其大小: 我将其构建为“管道”可执行文件,其工作方式如下: