Dam*_*man 79 php windows shell command-line wamp
我是php的新手,想从命令行运行php.我已经安装了WAMP并将"系统变量"设置为我的php文件夹(即C:\wamp\bin\php\php5.4.3).
当我去Run- > CMD- >键入php -a并按回车时,它说interactive mode enabled.但是当我写echo 'Hi';它时什么都没显示.
当我打字php -a输入时,我甚至看不到像'php>那样的东西.
Rig*_*lly 71
调用的PHP CLI(命令行界面的php)称为php.exe它位于c:\wamp\bin\php\php5.x.y\php.exe(其中x和y是已安装的php的版本号)
如果你想创建php scrips从命令行运行那么它很容易,非常有用.
创建一个像这样的批处理文件,让我们调用它phppath.cmd:
PATH=%PATH%;c:\wamp\bin\php\phpx.y.z
php -v
Run Code Online (Sandbox Code Playgroud)
更改x.y.z为已在WAMPServer中安装的PHP版本的有效文件夹名称
将其保存到PATH中已有的一个文件夹中,这样您就可以从任何地方运行它.
现在,从命令窗口,cd进入源文件夹并运行> phppath.
然后跑
php your_script.php
它应该像梦一样工作.
下面是一个配置PHP Composer和PEAR的示例,如果需要,它们存在
@echo off
REM **************************************************************
REM * PLACE This file in a folder that is already on your PATH
REM * Or just put it in your C:\Windows folder as that is on the
REM * Search path by default
REM * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
REM * EDIT THE NEXT 3 Parameters to fit your installed WAMPServer
REM **************************************************************
set baseWamp=D:\wamp
set defaultPHPver=7.1.9
set composerInstalled=%baseWamp%\composer
set phpFolder=\bin\php\php
if %1.==. (
set phpver=%baseWamp%%phpFolder%%defaultPHPver%
) else (
set phpver=%baseWamp%%phpFolder%%1
)
PATH=%PATH%;%phpver%
php -v
echo ---------------------------------------------------------------
REM IF PEAR IS INSTALLED IN THIS VERSION OF PHP
IF exist %phpver%\pear (
set PHP_PEAR_SYSCONF_DIR=D:\wamp\bin\php\php%phpver%
set PHP_PEAR_INSTALL_DIR=D:\wamp\bin\php\php%phpver%\pear
set PHP_PEAR_DOC_DIR=D:\wamp\bin\php\php%phpver%\docs
set PHP_PEAR_BIN_DIR=D:\wamp\bin\php\php%phpver%
set PHP_PEAR_DATA_DIR=D:\wamp\bin\php\php%phpver%\data
set PHP_PEAR_PHP_BIN=D:\wamp\bin\php\php%phpver%\php.exe
set PHP_PEAR_TEST_DIR=D:\wamp\bin\php\php%phpver%\tests
echo PEAR INCLUDED IN THIS CONFIG
echo ---------------------------------------------------------------
) else (
echo PEAR DOES NOT EXIST IN THIS VERSION OF php
echo ---------------------------------------------------------------
)
REM IF A GLOBAL COMPOSER EXISTS ADD THAT TOO
REM **************************************************************
REM * IF A GLOBAL COMPOSER EXISTS ADD THAT TOO
REM *
REM * This assumes that composer is installed in /wamp/composer
REM *
REM **************************************************************
IF EXIST %composerInstalled% (
ECHO COMPOSER INCLUDED IN THIS CONFIG
echo ---------------------------------------------------------------
set COMPOSER_HOME=%baseWamp%\composer
set COMPOSER_CACHE_DIR=%baseWamp%\composer
PATH=%PATH%;%baseWamp%\composer
rem echo TO UPDATE COMPOSER do > composer self-update
echo ---------------------------------------------------------------
) else (
echo ---------------------------------------------------------------
echo COMPOSER IS NOT INSTALLED
echo ---------------------------------------------------------------
)
set baseWamp=
set defaultPHPver=
set composerInstalled=
set phpFolder=
Run Code Online (Sandbox Code Playgroud)
像这样调用此命令文件以使用PHP的默认版本
> phppath
Run Code Online (Sandbox Code Playgroud)
或者像这样获得特定版本的PHP
> phppath 5.6.30
Run Code Online (Sandbox Code Playgroud)
Hen*_*zia 36
我记得有一次几年前我偶然发现了这个问题,因为windows没有readline,因此没有交互式shell,使用没有readline支持的php交互模式,你可以这样做:
C:\>php -a
Interactive mode enabled
<?php
echo "Hello, world!";
?>
^Z
Hello, world!
Run Code Online (Sandbox Code Playgroud)
进入交互模式后,使用opening(<?php)和closing(?>)php标签键入,并以控件Z(^Z)结束,表示文件结束.
我还记得我从php的网站用户评论中找到了解决方案:http://www.php.net/manual/en/features.commandline.interactive.php#105729
Nis*_*ani 12
尝试使用批处理文件
php -S localhost:8000.bat扩展名,server.batserver.bat文件你的服务器准备就绪http://localhost:8000如果你有错误php无法识别任何内部或外部命令然后转到环境变量并编辑php.exe的路径
"C:\wamp\bin\php\php5.4.3"
dri*_*iis 11
您所描述的问题听起来像您的PHP版本可能缺少readline PHP模块,导致交互式shell无法正常工作.我基于这个PHP错误提交.
试试跑步
php -m
Run Code Online (Sandbox Code Playgroud)
并查看输出中是否出现"readline".
从分发中省略readline可能有充分的理由.PHP通常由Web服务器执行; 所以大多数用例并不是真的需要它.我确信您可以从命令提示符处理文件中的PHP代码,使用:
php file.php
Run Code Online (Sandbox Code Playgroud)
还有一个phpsh项目,它为PHP提供了一个(更好的)交互式shell.但是,有些人在Windows下运行它时遇到了麻烦(我自己没试过).
编辑:根据此处的文档,readlineWindows不支持:
注意:此扩展在Windows平台上不可用.
所以,如果这是正确的,你的选择是:
Jam*_*ock 10
如果您只想运行快速代码段,可以使用-r选项:
php -r "echo 'hi';"
Run Code Online (Sandbox Code Playgroud)
-r允许在不使用脚本标记的情况下运行代码 <?..?>
您可以使用 php.exe 运行 php 页面,使用 php 代码创建一些 php 文件,然后在 cmd 中写入"[PATH to php.ext]\php.exe [path_to_file]\file.php"
| 归档时间: |
|
| 查看次数: |
212630 次 |
| 最近记录: |