你按照php有以下输出语句写就可以了:
一、
echo
常用的输出语句,例如:echo
'helloworld!';
二、print()
输出语句,有返回值。例如:print('helloworld!');
输出成功返回1,失败返回0。
三、
printf();
格式化输出字符串。例如:printf("%d,%f",12,123);
四、
print_r();
输出数组、对象等复合数据类型。例如:print_r($array);
五、
var_dump();
可以判断一个变量的类型与长度,并输出变量的数值。例如:var_dump('helloworld!');如果还有更多php问题不懂,可以去后盾网论坛求助专区,可以帮你解答更多问题,我的回答还不错吧!
1、安装php运行环境
2、安装数据库
3、将网站目录指向网站源码所在的文件夹
详细步骤如下:
===========
===========
===========
Windows 2000/XP/2003 下 IIS+PHP+MySQL+Zend Optimizer+GD库+phpMyAdmin安装配置
关键词:Windows IIS下配置支持PHP+MYSQL
Apache下支持PHP的配置方法比较简单,这里就不写了
一般WIN主机推荐PHP环境组合:PHP44x+MySQL40x,故以下关于PHP44x+MySQL40x组合的安装以蓝色文字显示,如果你只需要安装PHP44x+MySQL40x的组合只看蓝色文字的相关内容即可
当然喜欢体验的或者WIN2003系统也可体验尝试最新的版本,推荐组合PHP51x+MYSQL50x/MySQL41x
一、软件准备:以下均为截止2006-1-20的最新正式版本,下载地址也均长期有效
1PHP,推荐PHP440的ZIP解压版本:
PHP(440):
http://cnphpnet/get/php-440-Win32zip/from/a/mirror
[供选用]:
PHP(512):
http://cnphpnet/get/php-512-Win32zip/from/a/mirror
2MySQL,配合PHP4推荐MySQL4026的WIN系统安装版本:
MySQL(4026):
http://downloaddiscuznet/mysql-4026-win32zip
http://devmysqlcom/get/Downloa p/from/pick#mirrors
[供选用]:
MySQL(4116):
http://wwwskycncom/soft/24418html
http://devmysqlcom/get/Downloa p/from/pick#mirrors
MySQL(5018):
http://wwwskycncom/soft/1262html
http://devmysqlcom/get/Downloa p/from/pick#mirrors
3Zend Optimizer,当然选择当前最新版本拉:
Zend Optimizer(262):
http://wwwzendcom/store/free_downloadphppid=13
(Zend软件虽然免费下载,但需要注册用户,这里提供本人注册好的帐户名:
xqincom
和密码:
xqincom
,方便大家使用,请不要修改本帐号或将本帐户用于其他费正当途径,谢谢!)
登陆后选择Windows x86的Platform版本,如最新版本262
https://wwwzendcom/store/getfreefilephppid=13&zbid=995
4phpMyAdmin,当然同样选择当前最新版本拉,注意选择for Windows 的版本哦:
phpMyAdmin(270):
http://wwwcrskycom/soft/4190html
http://wwwskycncom/soft/10687html
假设 C:\ 为你现在所使用操作系统的系统盘,如果你目前操作系统不是安装在 C:\ ,请自行对应修改相应路径。同时由于C盘经常会因为各种原因重装系统,数据放在该盘不易备份和转移
选择安装目录,故本文将所有PHP相关软件均安装到D:\php目录下,这个路径你可以自行设定,如果你安装到不同目录涉及到路径的请对应修改以下的对应路径即可
二、安装 PHP :本文PHP安装路径取为D:\php\php4\
(为避混淆,PHP51x版本安装路径取为D:\php\php5\)
(1)、下载后得到 php-440-Win32zip ,解压至D:\php目录,将得到二级目录php-440-Win32,改名为 php4,也即得到PHP文件存放目录D:\php\php4\[如果是PHP512,得到的文件是php-512-Win32zip,直接全 部接压至D:\php\php5目录即可得PHP文件存放目录D:\php\php5\
];
(2)、再将D:\php\php4目录和D:\php\php4\dlls目录[
PHP5为D:\php\php5\
]下的所有dll文件拷到c:\Windows\system32(win2000系统为 c:/winnt/system32/)下,覆盖已有的dll文件;
(3)、将phpini-dist用记事本打开,利用记事本的查找功能搜索并修改:
搜索
CODE:
[Copy to clipboard]
register_globals = Off,将 Off 改成 On ,即得到register_globals = On;
注:这个对应PHP的全局变量功能,考虑有很多PHP程序需要全局变量功能故打开,打开后请注意-PHP程序的严谨性,如果不需要推荐不修改保持默认Off状态
再搜索
CODE:
[Copy to clipboard]
extension_dir =,并将其路径指到你的 PHP 目录下的 extensions 目录,比如:修改extension_dir = "/"为extension_dir = "D:/php/php4/extensions/" ;
PHP扩展功能目录[PHP5对应修改为extension_dir = "D:/php/php5/ext/"]
在D:\php下建立文件夹并命名为tmp
查找
CODE:
[Copy to clipboard]
;upload_tmp_dir =将;upload_tmp_dir该行的注释符,即前面的分号“;”去掉,使该行在phpini文档中起作用。upload_tmp_dir是用来定 义上传文件存放的临时路径,在这里你还可以修改并给其定义一个绝对路径,这里设置的目录必须有读写权限。
这里我设置为upload_tmp_dir = D:/php/tmp (即前面建立的这个文件夹呵)
搜索找到
CODE:
[Copy to clipboard]
;Windows Extensions将下面一些常用的项前面的;去掉
CODE:
[Copy to clipboard]
;extension=php_mbstringdll
CODE:
[Copy to clipboard]
;extension=php_curldll
CODE:
[Copy to clipboard]
;extension=php_dbasedll
CODE:
[Copy to clipboard]
;extension=php_gd2dll
这个是用来支持GD库的,一般需要,必选
CODE:
[Copy to clipboard]
;extension=php_ldapdll
CODE:
[Copy to clipboard]
extension=php_zipdll去掉前面的";"
对于PHP5的版本还需要查找
CODE:
[Copy to clipboard]
;extension=php_mysqldll并同样去掉前面的";"
这个是用来支持MYSQL的,由于PHP5将MySQL作为一个独立的模块来加载运行的,故要支持MYSQL必选
查找
CODE:
[Copy to clipboard]
;sessionsave_path =去掉前面;号,本文这里将其设置置为
sessionsave_path = D:/php/tmp
其他的你可以选择需要的去掉前面的;然后将该文件另存为为phpini到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下,注意更改文件后缀名为ini,得到C:\Windows\phpini ( Windows 2000 下为 C:\WINNT\phpini)
本人配置成功后的PHPINI文件示例可供大家参考:
http://xqincom/iis/php4/phpini
对应版本为PHP440
http://xqincom/iis/php5/phpini
对应版本为PHP5112
若路径等和本文相同可直接保存到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下使用若路径等和本文相同可直接保存到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下使用
一些朋友经常反映无法上传较大的文件或者运行某些程序经常超时,那么可以找到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下的PHPINI以下内容修改:
max_execution_time = 30 ; 这个是每个脚本运行的最长时间,可以自己修改加长,单位秒
max_input_time = 60 ; 这是每个脚本可以消耗的时间,单位也是秒
memory_limit = 8M ; 这个是脚本运行最大消耗的内存,也可以自己加大
upload_max_filesize = 2M ; 上载文件的最大许可大小 ,自己改吧,一些论坛需要这个更大的值
(4)、配置 IIS 使其支持 PHP :
首先必须确定系统中已经正确安装 IIS ,如果没有安装,需要先安装 IIS ,安装步骤如下:
Windows 2000/XP 下的 IIS 安装:
用 Administrator 帐号登陆系统,将 Windows 2000 安装光盘插入光盘驱动器,进入“控制面板”点击“添加/删除程序”,再点击左侧的“添加/删除 Windows 组件”,在弹出的窗口中选择“Internet 信息服务(IIS)”,点下面的“详细信息”按钮,选择组件,以下组件是必须的:“Internet 服务管理器”、“World Wide Web 服务器”和“公用文件”,确定安装。
安装完毕后,在“控制面板”的“管理工具”里打开“服务”,检查“IIS Admin Service”和“World Wide Web Publishing Service”两项服务,如果没有启动,将其启动即可。
Windows 2003 下的 IIS 安装:
由于 Windows 2003 的 IIS 60 集成在应用程序服务器中,因此安装应用程序服务器就会默认安装 IIS 60 ,在“开始”菜单中点击“配置您的服务器”,在打开的“配置您的服务器向导”里左侧选择“应用程序服务器(IIS,ASPNET)”,单击“下一步”出 现“应用程序服务器选项”,你可以选择和应用程序服务器一起安装的组件,默认全选即可,单击“下一步”,出现“选择总结界面”,提示了本次安装中的选项, 配置程序将自动按照“选择总结”中的选项进行安装和配置。
打开浏览器,输入:
http://localhost/
,看到成功页面后进行下面的操作:
PHP 支持 CGI 和 ISAPI 两种安装模式,CGI 更消耗资源,容易因为超时而没有反映,但是实际上比较安全,负载能力强,节省资源,但是安全性略差于CGI,本人推荐使用 ISAPI 模式。故这里只解介绍 ISAPI 模式安装方法:(以下的截图因各个系统不同,窗口界面可能不同,但对应选项卡栏目是相同的,只需找到提到的对应选项卡即可)
在“控制面板”的“管理工具”中选择“Internet 服务管理器”,打开 IIS 后停止服务,对于WIN2000系统在”Internet 服务管理器“的下级树一般为你的”计算机名“上单击右键选择“属性”,再在属性页面选择主属性”WWW 服务“右边的”编辑“
对于XP/2003系统展开”Internet 服务管理器“的下级树一般为你的”计算机名“选择”网站“并单击右键选择“属性”
在弹出的属性窗口上选择“ISAPI 筛选器”选项卡找到并点击“添加”按钮,在弹出的“筛选器属性”窗口中的“筛选器名称”栏中输入:PHP ,再将浏览可执行文件使路径指向 php4isapidll 所在路径,如本文中为:D:\php\php4\sapi\php4isapidll[PHP5对应路径为D:\php\php5\ php5isapidll
]。
打开“站点属性”窗口的“主目录”选项卡,找到并点击“配置”按钮
在弹出的“应用程序配置”窗口中的”应用程序映射“选项卡找到并点击“添加”按钮新增一个扩展名映射,在弹出的窗口中单击“浏览”将可执行文件指向 php4isapidll 所在路径,如本文中为:D:\php\php4\sapi\php4isapidll[
PHP5对应路径为D:\php\php5\php5isapidll
],扩展名为 php ,动作限于”GET,HEAD,POST,TRACE“,将“脚本引擎”“确认文件是否存在”选中,然后一路确定即可。如果还想支持诸如 php3 ,phtml 等扩展名的 PHP 文件,可以重复“添加”步骤,对应扩展名设置为需要的即可如PHPX。
此步操作将使你服务器IIS下的所有站点都支持你所添加的PHP扩展文件,当然如果你只需要部分站点支持PHP,只需要在“你需要支持PHP的Web站 点”比如“默认Web站点”上单击右键选择“属性”,在打开的“ Web 站点属性”“主目录”选项卡,编辑或者添加PHP的扩展名映射即可或者将你步需要支持PHP的站点中的PHP扩展映射删除即可
再打开“站点属性”窗口的“文档”选项卡,找到并点击“添加”按钮,向默认的 Web 站点启动文档列表中添加 indexphp 项。您可以将 indexphp 升到最高优先级,这样,访问站点时就会首先自动寻找并打开 indexphp 文档。
确定 Web 目录的应用程序设置和执行许可中选择为纯脚本,然后关闭 Internet 信息服务管理器
对于2003系统还需要在“Internet 服务管理器”左边的“WEB服务扩展”中设置ISAPI 扩展允许,Active Server Pages 允许
完成所有操作后,重新启动IIS服务。
在CMD命令提示符中执行如下命令:
net stop w3svc
net stop iisadmin
net start w3svc
到此,PHP的基本安装已经完成,我们已经使网站支持PHP脚本。
检查方法是,在 IIS 根目录下新建一个文本文件存为 phpphp ,内容如下:
CODE:
[Copy to clipboard]
打开浏览器,输入:
http://localhost/phpphp
,将显示当前服务器所支持 PHP 的全部信息,可以看到 Server API的模式为:ISAPI 。
或者利用PHP探针检测
http://xqincom/indexrar
下载后解压到你的站点根目录下并访问即可
三、安装 MySQL :
对于MySQL4026下载得到的是mysql-4026-win32zip,解压到mysql-4026-win32目录双击执行 Setupexe 一路Next下一步,选择安装目录为D:\php\MySQL和安装方式为Custom自定义安装,再一路Next下一步即可。
安装完毕后,在CMD命令行中输入并运行:
CODE:
[Copy to clipboard]
D:\php\MySQL\bin\mysqld-nt -install如果返回Service successfully installed则说明系统服务成功安装
新建一文本文件存为MYINI,编辑配置MYINI,这里给出一个参考的配置
(
http://xqincom/iis/myini
可以下载后直接保存到WINDOWS或者WINNT目录使用)
CODE:
[Copy to clipboard]
[mysqld]
basedir=D:/php/MySQL
#MySQL所在目录
datadir=D:/php/MySQL/data
#MySQL数据库所在目录,可以更改为其他你存放数据库的目录
#language=D:/php/MySQL/share/your language directory
#port=3306
set-variable = max_connections=800
skip-locking
set-variable = key_buffer=512M
set-variable = max_allowed_packet=4M
set-variable = table_cache=1024
set-variable = sort_buffer=2M
set-variable = thread_cache=64
set-variable = join_buffer_size=32M
set-variable = record_buffer=32M
set-variable = thread_concurrency=8
set-variable = myisam_sort_buffer_size=64M
set-variable = connect_timeout=10
set-variable = wait_timeout=10
server-id = 1
[isamchk]
set-variable = key_buffer=128M
set-variable = sort_buffer=128M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[myisamchk]
set-variable = key_buffer=128M
set-variable = sort_buffer=128M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[WinMySQLadmin]
Server=D:/php/MySQL/bin/mysqld-ntexe保存后复制此MYINI文件到C:\Windows ( Windows 2000 下为 C:\WINNT)目录下
回到CMD命令行中输入并运行:
CODE:
[Copy to clipboard]
net start mysqlMySQL 服务正在启动
MySQL 服务已经启动成功。
将启动 MySQL 服务;
DOS下修改ROOT密码:当然后面安装PHPMYADMIN后修改密码也可以通过PHPMYADMIN修改
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例:给root加个密码xqincom
首先在进入CMD命令行,转到MYSQL目录下的bin目录,然后键入以下命令
mysqladmin -uroot password xqincom
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
D:\php\MySQL\bin>mysqladmin -uroot password xqincom回车后ROOT密码就设置为xqincom了
如果你下载的是 MySQL5x或者MySQL41x,例mysql-5018-win32:解压后双击执行 Setupexe ,Next下一步后选择Custom自定义安装,再Next下一步选择安装路径这里我们选择D:\php\MySQL,继续Next下一步跳过Sign UP完成安装。
安装完成后会提示你是不是立即进行配置,选择是即可进行配置。当然一般安装后菜单里面也有配置向导MySQL Server Instance Config Wizar,运行后按下面步骤配置并设置ROOT密码即可
Next下一步后选择Standard Configuration
Next下一步,钩选Include PATH
Next下一步,设置ROOT密码,建议社设置复杂点,确保服务器安全!
Apply完成后将在D:\php\MySQL目录下生成MYINI配置文件,添加并启动MySQL服务
如果你的MySQL安装出错,并且卸载重装仍无法解决,这里提供一个小工具系统服务管理器
http://xqincom/iis/serrar
,用于卸载后删除存在的MYSQL服务,重起后再按上述说明进行安装一般即可成功安装
四、安装 Zend Optimizer :
下载后得到 ZendOptimizer-262-Windows-i386exe ,直接双击安装即可,安装过程要你选择 Web Server 时,选择 IIS ,然后提示你是否 Restart Web Server,选择是,完成安装之前提示是否备份 phpini ,点确定后安装完成。我这里安装到D:\php\Zend
以下两步的目录根据你自己的默认WEB站点目录来选,当然也可以选择到D:\php\Zend目录
Zend Optimizer 的安装向导会自动根据你的选择来修改 phpini 帮助你启动这个引擎。下面简单介绍一下 Zend Optimizer 的配置选项。以下为本人安装完成后 phpini 里的默认配置代码(分号后面的内容为注释):
zend_extension_ts="D:\php\Zend\lib\ZendExtensionManagerdll"
;Zend Optimizer 模块在硬盘上的安装路径。
zend_extension_manageroptimizer_ts="D:\php\Zend\lib\Optimizer-262"
;优化器所在目录,默认无须修改。
zend_optimizeroptimization_level=1023
;优化程度,这里定义启动多少个优化过程,默认值是 15 ,表示同时开启 10 个优化过程中的 1-4 ,我们可以将这个值改为 1023 ,表示开启全部10个优化过程。
调用phpinfo()函数后显示:
Zend Engine v130, Copyright (c) 1998-2004 Zend Technologies with Zend Extension Manager v109, Copyright (c) 2003-2006, by Zend Technologies with Zend Optimizer v262, Copyright (c) 1998-2006, by Zend Technologies 则表示安装成功。
一、简介
如果你对Unix/Linux有所了解的话,你应该知道他们大都自带了C和C++的编译器,分别是GCC和G++。Unix在程序安装及Make等许多地方使用到了这些编译器。利用一些控制台命令,C++和PHP, 我将向你介绍怎样生成一个完整的C++程序例子,他可以在用PHP程序来执行,并能获得相应的输出结果。我将先生成C++程序代码,并编译它,谈后讨论我们将如果通过使用PHP的函数passthru来执行这个程序。从某种意义上来说,这边文章给我们提供一种通过Web页面来访问一般程序的方法。
为了能更好的理解这篇文章,你应该有一台运行着apache和最新版本php的unix/Linux服务器。同时也应该掌握C++, unix控制台命令,当然一些PHP的编程经验也是必需的。
二、编写一个C++程序
例如,我们可以写一个能够通过命令行还接收参数的C++ 简单程序,并命名为Sampleapp然后我们能够按照下面的方式给他传递三个不同的参数 :
Sampleapp 参数一 参数二 参数三
这个程序的功能是能输出传递给他的参数的个数和每个参数的值,然后我们可以用PHP脚本程序来执行编译好的C++程序。
利用你习惯的文本编辑器,新建一个名为Sampleappcpp 的文件,再此文件中输入如下的代码:
#include
int main(int argc, char argv[])
{
cout
endl
"You passed "
argc-1
" arguement"
(argc-1 == 1 "" : "s")
""
endl;
cout
(argc-1 == 1 "This" : "These")
" arguement"
(argc-1 == 1 "" : "s")
" "
(argc-1 == 1 "is" : "are")
": "
endl
endl;
for(int i = 1; i
argc; i++)
cout
"["
i
"] "
argv[i]
endl;
return 0;
}
这个C++程序包含的程序的入口点:main(),main()函数带了两个参数:argc(命令行传入参数的个数)和argv(一个包含了所传参数实际值的字符型指针数组)。这个两个参数能被C++编译器自动捕获。
cout
endl
"You passed "
argc-1
" arguement"
(argc-1 == 1 "" : "s")
""
endl;;
这句话的意思是获得从执行命令行传入的参数的个数。Argv这个字符型指针数组是从0开始检索的,它至少包含一个实际的值(即本程序的路径和名称),这个值由C++编译器自动地附加上去。条件操作符””是用来判断命令行传入地参数是否多于一个。例如,如果命令行过传入两个参数,我们地程序将输出如下信息:
You passed 2 arguments
cout
(argc-1 == 1 "This" : "These")
" arguement"
(argc-1 == 1 "" : "s")
" "
(argc-1 == 1 "is" : "are")
": "
endl
endl;
接下来,我们同样用条件操作符来输出另一句话。不过要记住,即使我们不从程序执行命令行传入任何参数,main函数地argv[]参数也包含一个值。同样地,如果我们从命令行传入两个参数给程序,程序将输出如下地信息:
These arguments are:
for(int i = 1; i
argc; i++)
cout
"["
i
"] "
argv[i]
endl;
最后,main函数逐一的输出命令行传入的每个参数,它用到了一个简单的for(;;)循环语句,这个函数能根据参数的个数将参数值一个一个的输出。假如我们传给程序两个参数”first”和second”, for循环输出的结果如下:
[1] first
[2] second
接下来,我们将编译这个cpp文件,如果你在Windows平台下,需要telnet到所使用的server上。在这里,我们使用大多Unix机器上都提供的G++编译器来编译这个源文件。不过为了确信你的机器安装了G++,你可以输入如下命令:which g++。如果G++已经安装了,Unix shell将显示出G++所在的全路径。如果没有安装,它将提示你说”command couldn’t be found” 你可以在这里下载到G++
在源文件所在的目录输入如下G++命令:
g++ -c sampleappcpp
通过这个命令,我们就将 cpp文件编译成了包含机器代码的目标文件。通过 ls a命令,你可以发现在本目录下出现了一个新文件sampleappo,这就是cpp源文件被编译成机器码的结果。不过我们最终想要的是一个可执行文件,因为我们还要输入如下的G++命令:
g++ sampleappcpp o sampleapp
这样我们就获得了一个名为sampleapp的可执行文件。不过注意的是,Unix下的可执行文件跟Windows不一样,它没有任何后缀。
下面我们可以来检验一下程序执行的结果,如果如下命令:
sampleapp one -two /three
我们可以看到如下的执行结果:
You passed 3 arguments
These arguments are:
[1] one
[2] two
[3] /three
现在,可执行的C++程序成生完毕,下面我们将生成一个能够通过 web浏览器来访问这个程序的PHP教本程序。
三、生成PHP脚本程序
为了能通过Internet来调用我们的C++程序,我们需要生成一个PHP脚本程序。这个PHP脚本程序将有一个Form表单,以便用户能输入可以传给程序Sampleapp的参数。PHP脚本的代码太长就不在这里全部列出了,需要的话可以通过下面的地址来下载它。(Php code)
if(@$submit)
{
}
else
{
}
#p#副标题#e#
首先,脚本程序检查看变量$submit是否有值,这个变量$submit的值是程序后面的Form表单提交后传递过来的,它缺省为空值。符号@的作用是当变量$submit的值不存在的时忽略相关的错误信息。
由于变量$submit缺省为空,所以一开始执行else{}中的代码,它在浏览器上简单的显示一个Form表单。Form的action属性设为变量 $PHP_SELF,即表单提交后返回本页。同时Form表单包含了一个文本输入条,这是用来让用户输入要传递给C++程序的命令行参数。Form如下图所示:
一旦我们输入执行命令并提交表单,变量$submit(即按钮Go的名字)就获得一个值,这样PHP教本将执行if{}之间的代码。
if($args == "")
echo " You didn't enter any arguments";
else
{
echo " SampleApp Result";
$command = "/htdocs/sampleapp " escapeshellcmd($args);
passthru($command);
}
变量$args是自动产生的,它的值是Form表单中文本输入条传过来的值。如果没有输入任何信息,程序将简单的告诉用户没有输入任何值。
如果用户输入任何非空的信息,程序将把text域的值,即变量$args传给C++程序。下面这段代码就是执行C++的程序的执行命令:
$command = "/htdocs/sampleapp " escapeshellcmd($args);
函数eacapeshellcmd是用来当做安全检查工具,以过滤调一些如”,”,””和””等的特殊字符。这可以防止一些用户企图输入某些字符来调用系统内部命令。
例如,如果你在Form表单的text域中输入”1 two /three”,那么变量$command的值就为: /htdocs/sampleapp 1 two /three
你能发现我们定义了程序sampleapp的全路径,在这个例子中,程序文件位于/htdocs目录下。你可以根据的自己程序所在的目录做相应的修改。
passthru($command);
最后,我们使用PHP的函数passthru来执行变量$command所包含的命令并且将原始的执行结果输出到浏览器上。在我的服务器上,返回结果的HTML页面如下:
w在本文即将结束之前,几个可能碰到的问题我想说一下。首先,当你执行sampleappphp教本程序的时候,如果你没有看到程序的任何输出信息,或许是开了安全模式。如果这样,系统将不会允许PHP脚本来执行系统内部程序。其次,在一些Unix系统上,PHP函数passthru不能将内部程序的输出传递给浏览页面,如果发生这种情况,可以用system函数来代替passthru函数。
四、结论
从本的例子可以看出,Unix操作系统非常强大,并且PHP允许开发者通过脚本以独立的线程来执行系统内部程序。本文的所给的例子非常的简单,但是只要再多花一点功夫,你可以写一个能更新MySQL数据库的c++程序,运行其他系统命令的程序或者是操作系统文件/目录结构的程序。但是,不管怎样,你都应该确保你的系统安全,绝对不能让任何其他的脚本程序随意访问系统内部程序。
#p#副标题#e#
#define IdYes 1002
#define IdNo 1003
#define IdStatic 1004
#define IdTimer 1005
#define Width 640
#define Height 480
#define Tick 2000
#include<windowsh>
int x,y;
RECT rdesk;
HINSTANCE hinst;
HWND hyes,hno;
BOOL quit=FALSE;
LRESULT CALLBACK WndProc(HWND hwnd,UINT Message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rclient;
HBRUSH hbrbkgnd;
static COLORREF c;
static BYTE r,g,b;
switch(Message)
{
case WM_TIMER:
if(IdTimer==LOWORD(wParam))
{
r=(BYTE)(rand()%256);
g=(BYTE)(rand()%256);
b=(BYTE)(rand()%256);
c=RGB(r,g,b);
InvalidateRect(hwnd,NULL,TRUE);
UpdateWindow(hwnd);
}
break;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
hbrbkgnd=CreateSolidBrush(c);
SelectObject(hdc,hbrbkgnd);
GetClientRect(hwnd,&rclient);
FillRect(hdc,&rclient,hbrbkgnd);
DeleteObject(hbrbkgnd);
EndPaint(hwnd,&ps);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IdYes:
quit=TRUE;
MessageBox(hwnd,TEXT("回答正确,太太太好了!"),TEXT("宝贝"),MB_ICONEXCLAMATION|MB_OK);
SendMessage(hwnd,WM_CLOSE,0,0);
break;
case IdNo:
MessageBox(hwnd,TEXT("回答错误哦,我很生气呢!"),TEXT("宝贝"),MB_ICONEXCLAMATION|MB_OK);
break;
}
break;
case WM_SIZE:
case WM_MOVE:
SetWindowPos(hwnd,HWND_TOPMOST,x,y,Width,Height,SWP_SHOWWINDOW);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_CLOSE:
if(quit)
{
KillTimer(hwnd,IdTimer);
DestroyWindow(hwnd);
}
break;
case WM_CREATE:
CreateWindow(TEXT("Static"),
TEXT("请回答:做我女朋友好吗?"),
WS_CHILD|WS_VISIBLE|SS_CENTER,
200,
200,
240,
20,
hwnd,
(HMENU)IdStatic,
hinst,
NULL
);
hyes=CreateWindow(TEXT("Button"),
TEXT("好"),
WS_CHILD|WS_VISIBLE|BS_CENTER,
270,
230,
45,
20,
hwnd,
(HMENU)IdYes,
hinst,
NULL
);
hno=CreateWindow(TEXT("Button"),
TEXT("不好"),
WS_CHILD|WS_VISIBLE|BS_CENTER,
325,
230,
45,
20,
hwnd,
(HMENU)IdNo,
hinst,
NULL
);
SetTimer(hwnd,IdTimer,Tick,NULL);
break;
default:
return DefWindowProc(hwnd,Message,wParam,lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASSEX wc;
HWND hwnd;
MSG msg;
hinst=hInstance;
srand(time(NULL));
memset(&wc,0,sizeof(wc));
wccbSize=sizeof(WNDCLASSEX);
wclpfnWndProc=WndProc;
wchInstance=hInstance;
wchCursor=LoadCursor(NULL,IDC_ARROW);
wchbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wclpszClassName=TEXT("WindowClass");
wchIcon=LoadIcon(NULL,IDI_APPLICATION);
wchIconSm=LoadIcon(NULL,IDI_APPLICATION);
if(!RegisterClassEx(&wc))
{
MessageBox(NULL,TEXT("窗口注册失败!"),TEXT("错误"),MB_ICONEXCLAMATION|MB_OK);
return 0;
}
GetWindowRect(GetDesktopWindow(),&rdesk);
x=(rdeskright-Width)/2;
y=(rdeskbottom-Height)/2,
hwnd = CreateWindowEx(WS_EX_TOPMOST,
TEXT("WindowClass"),
TEXT("I Love You"),
WS_THICKFRAME|WS_VISIBLE,
x,
y,
Width,
Height,
NULL,NULL,hInstance,NULL);
if(NULL==hwnd)
{
MessageBox(NULL,TEXT("窗口创建失败!"),TEXT("错误!"),MB_ICONEXCLAMATION|MB_OK);
return 0;
}
while(GetMessage(&msg,NULL,0,0)>0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msgwParam;
}
截图
1、EditPlus
EditPlus是一套功能强大,可取代记事本的文字编辑器,拥有无限制的Undo/Redo、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能。对于很多php程序来说,EditPlus非常简单好用。同时EditPlus也是一款好用的HTML编辑器,除了可以颜色标记HTMLTag(同时支持C/C、Perl、Java)外,还内建完整的HTML和CSS1指令功能,对于习惯用记事本编辑网页的朋友,它可帮你节省一半以上的网页制作时间,若你有安装IE30以上版本,它还会结合IE浏览器于EditPlus窗口中,让你可以直接预览编辑好的网页(若没安装IE,也可指定浏览器路径)。
2、PHPDesigner7
PHPDesigner7不仅适用于php开发,也支持其他编程语言,例如:html、xhtml、xml、css和javascript、vbscript、java、c#、perl、python等!PHPDesigner7主要针对PHP网页的编写所设计的程序,它内建一系列的指令码、PHP4原始码数据库、语法高亮度显示功能、FTP客户端等,无论您是PHP网页设计高手,或者是刚入门的新手,您都可以使用PHPDesigner7来设计网页程序。
3、Norepad
Notepad是一款台湾人开发的一款非常有特色的编辑器,属于开源软件,支持C、C、Java、C#、XML、HTML、PHP、Javascript编程语言,而且可以免费使用。
主要功能有:
①内置支持多达27种语法高亮度显示(囊括各种常见的源代码、脚本,值得一提的是,完美支持nfo文件查看),也支持自定义语言;
②可自动检测文件类型,根据关键字显示节点,节点可自由折叠/打开,代码显示得非常有层次感!这是此软件特色的体现之一;
③可打开双窗口,在分窗口中又可打开多个子窗口,允许快捷切换全屏显示模式(F11),支持鼠标滚轮改变文档显示比例等等。
4、PHPCoder
PHPCoder用于快速开发和调试PHP应用程序,它很容易扩展和定制,完全能够符合PHP开发者的个性要求主要功能为:
1结合了PHP编译器和参考文档,可以对编辑中的PHP脚本进行即时预览;
2支持高亮显示HTML和PHP代码;
3自动完成功能,可以自动完成用户自定义代码片断;
4标准函数提示;
5有专门的工程项目管理器;
6对象浏览器搜寻编辑中文件的包含信息,自定义函数,并以树形显示;
7支持查找对称的语句标记符;
8支持高级搜索和替换;
9自带FTP功能;
10支持运行和断点调试;
总之,PHPCoder是一个非常实用的,功能强大的编程环境,而且它是免费的!
5、ZendStudio
zendStudio是专业开发人员在使用PHP整个开发周期中的集成开发环境(IDE),它包括了PHP所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具,ZendStudio加速开发周期,并简化复杂的应用方案。
ZendStudio主要组件
1专业的集成开发环境内置编辑器,调试器,以及帮助文档
2Windows,Linux,Mac等多个操作系统版本
3多语言支持
4专业的编辑器
5关键字、语法加亮显示(PHP,HTML,XHTML,andJavaScript)
6XML&CSS的关键字、语法加亮显示
7代码模板
8支持PHP4andPHP5
9代码自动完成功能
10PHPCode(PHPDoc)分析功能
11内部调试器
12代码摘录
13PHP代码分析
14远程调试器
15RemoteProfiler
16数据库连接以及集成查询,适用于MySQL、Oracle、SQLServer、SQLite、PostgreSQL
17CVS集成,方便团队开发
用C语言编写一个程序相信爱的人表白。
电脑:华为MateBook14
系统:Windows10
软件:VC++
1、正确打开VC++,设置适合自己的字体大小及你想说的话。
2、编写程序:
#include <stdioh>void main(){printf("\n");printf("我是发自内心的爱你\n");printf("\n");}。
3、点击“编译”,“连接”,“运行”,检验程序是否正确。
程序不可以随便给人发短信的。
1理论上需要你和移动或联通谈,拿到SP(服务提供商)营业执照,才可以使用手机短信的API。(比较困难)
2如果你找到了一家SP,并谈成合作,他会分给你接口的引用方法。一般是socket+xml或是http+xml的用PHP的socket相关的函数可以很方便的去调用。
3如果还有更简单的方法,那就是通过一些免费/收费的短信发送服务商,他们提供发送短信的插件以及接口,有各种方式,大部分都有PHP可调用的HTTP方式和webservice方式的接口。如这个平台:
(http://wwwcpunccom/developmentaspsubid=78)
4还有人使用PHP调用飞信的API发送,但不是官方提供的,所以不是很稳定,请搜索 飞信API PHP 了解详细的情况。
网页的聊天室没有什么价值,那有飞秋、FICQ、RTX这些好玩呢。
如果是为了学习网页技术,我建议你去下载一个“江湖”游戏,核心是一个聊天室,但是里面增加了一些游戏,可能那样有人会来玩,也更有利于提高你学习的激情。
欢迎分享,转载请注明来源:表白网
评论列表(0条)