本文目录一览:
进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:cd curl
执行phpize生成编译文件,phpize在PHP安装目录的bin目录下
/usr/local/php5/bin/phpize
运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and
the $PHP_AUTOCONF
environment variable is set correctly and then rerun this
script.,需要安装autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install
autoconf(Ubuntu Linux)
/usr/local/php5/bin/php -v
执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,
这里会报错,可以根据错误信息去排查!
php语言得用fsockopen()函数,实现脚本异步运行,代码如下
异步请求函数(用debug参数若为true则为用为调试,开启调试可以看到异步的执行情况,但是失去异步的效果)
main.php
?php
/**
* 异步请求
* @copyright Copyright (c) Hangzhou Technology Co.,Ltd. ()
* @author $Author: juny $
* @version $Id: main.php 332 2018-09-23 09:15:08Z juny $
*/
function request_by_fsockopen($url,$post_data=array(),$debug=false){
$url_array = parse_url($url);
$hostname = $url_array['host'];
$port = isset($url_array['port'])? $url_array['port'] : 80;
@$requestPath = $url_array['path'] ."?". $url_array['query'];
$fp = fsockopen($hostname, $port, $errno, $errstr, 10);
if (!$fp) {
echo "$errstr ($errno)";
return false;
}
$method = "GET";
if(!empty($post_data)){
$method = "POST";
}
$header = "$method $requestPath HTTP/1.1\r\n";
$header.="Host: $hostname\r\n";
if(!empty($post_data)){
$_post = strval(NULL);
foreach($post_data as $k = $v){
$_post[]= $k."=".urlencode($v);//必须做url转码以防模拟post提交的数据中有符而导致post参数键值对紊乱
}
$_post = implode('', $_post);
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";//POST数据
$header .= "Content-Length: ". strlen($_post) ."\r\n";//POST数据的长度
$header.="Connection: Close\r\n\r\n";//长连接关闭
$header .= $_post; //传递POST数据
}else{
$header.="Connection: Close\r\n\r\n";//长连接关闭
}
fwrite($fp, $header);
//-----------------调试代码区间-----------------
//注如果开启下面的注释,异步将不生效可是方便调试
if($debug){
$html = '';
while (!feof($fp)) {
$html.=fgets($fp);
}
echo $html;
}
//-----------------调试代码区间-----------------
fclose($fp);
}
$data=array('name'='guoyu','pwd'='123456');
$url='';
request_by_fsockopen($url,$data,true);//
other.php
?php
header("content-type:text/html;charset=utf-8");
//error_reporting(0);
//ini_set('html_errors',false);
//ini_set('display_errors',false);
$name = isset($_POST['name'])?$_POST['name']:'';
$pwd = isset($_POST['pwd'])?$_POST['pwd']:'';
echo $name.$pwd;
echo 'success ok';
die;
?
使用实例:
[运行的main.php主脚本文件]
$data=array('name'='guoyu','pwd'='123456');
$url='';
request_by_fsockopen($url,$data,true);//把应用B的用户表异步-同步数据
[导步执行文件other.php]
在other.php中便可以用$_POST接收main.php提交过来的参数,从而进行下一步操作
以上就是php如何实现脚本异步执行的方法具体分析的详细内容.
php文件如何打开:
确保电脑上安装有php的运行环境如:wampserver,
phpstudy等等
安装好后,把php文件复制进对应的目录(一般是www目录下);
在浏览器上输入localhost/加你的php文件路径(localhost在这里就代表www目录,你只需要把后面的路径补齐即可),按下enter,php脚本将被自动解析运行
1、php调用js中的值
在z.php页面中有这样一段代码:
script type="text/javascript" var url="aaaa*"; /script ? $key="script type=text/javascriptdocument.write(url)/script"; echo $key; ?
2、php调用js中的方法(函数)script type="text/javascript" function test() { var t1=3; t1 = t1+2; alert(t1); //return t1; } /script?php echo "script type='text/javascript'test();/script"; ?
wamp:一键安装包,可用于正式环境
phpstudy:一键安装包,可视化配置
所谓任务计划就是由计算机自动调用用户事先设置好的应用程序,从而达到简化用户操作的目的。利用Windows
2000的任务计划程序(相当与*NIX下的cron程序,这里不再对其详述),我们可以安排任何脚本、程序或文档在最恰当的时候运行,从而满足自己的需要。下面以Windows
2000为例。
具体来说,我们若需利用任务计划程序自动运行则应执行如下步骤:
单击"开始"按钮,然后依次选择"程序"→"附件"→"系统工具"→"任务计划"(或者是"设置"→"控制面板"→"任务计划"),启动Windows
2000的任务计划管理程序。
在"任务计划"窗口中双击"添加任务计划"图标,启动系统的"任务计划向导",然后单击"下一步"按钮,在给出的程序列表中选择需要自动运行的应用程序,然后单击"下一步"按钮。
设置适当的任务计划名称并选择自动执行这个任务的时间频率(如每天、每星期、每月、一次性、每次启动计算机时、每次登录时等),然后单击"下一步"按钮。
此时系统将会要求用户对程序运行的具体时间进行设置,如几号、几点钟、哪几个时间段才能运行等,我们只需根据自己的需要加以设置即可。
接下来系统将会要求用户设置适当的用户名及密码(如图5所示),以便系统今后能自动加以运行。
最后,我们只需单击"完成"按钮即可将相应任务添加到Windows
2000的任务计划程序中,此后它就会自动"记住"这个任务,一旦系统时间及相关条件与用户设置的计划相符,它就会自动调用用户所指定的应用程序,十分方
便(每次启动Windows
2000的时候,任务计划程序都会自动启动,并在后台运行,确保用户的计划能够按时执行)。
现在我们来测试一下刚才所建的任务是否成功,鼠标右键单击"php"程序图标(如图6所示),在弹出的菜单里面选择"运行"。一般情况下程序图标只要这样
激活运行就可以正常启动。
.php:?phpecho
"Hello
from
the
CLI";?现在,试着在命令行提示符下运行这个程序,方法是调用CLI可执行文件并提供脚本的文件名:
#php
phphello.php
输出Hello
from
the
CLI
-----------------
使用标准的输入和输出
你可以在自己的PHP脚本里使用这三个常量,以接受用户的输入,或者显示处理和计算的结果。要更好地理解这一点,可以看看下面的脚本(列表A):列表A?php//
ask
for
input