实际效果测试,不考虑原理!
本地服务器,域名http://d.com,根路径D:\phpnow\vhosts\d.com.yii,相对根目录拥有文件/x.php代码里requeir_once /a/a.php,而/a/a.php又requeir_once /a/b/b.php
直接访问http://d.com/x.php/x/y/z.html?a=b&c=d的结果
/x.php
$_SERVER["HTTP_HOST"]:【d.com】//当前请求的 Host:即域名信信息
$_SERVER["PHP_SELF"]:【/x.php/x/y/z.html】//请求执行文件的相对地址
$_SERVER["SCRIPT_NAME"]:【/x.php】//实际执行文件相对地址
$_SERVER["SCRIPT_FILENAME"]:【D:/phpnow/vhosts/d.com.yii/x.php】//实际执行文件的绝对路径。
__FILE__ :【D:\phpnow\vhosts\d.com.yii\x.php】//实际执行代码的绝对路径。
$_SERVER["REQUEST_URI"]:【/x.php/x/y/z.html?a=b&c=d】//url请求中包括/和之后的所有内容。
$_SERVER["QUERY_STRING"]:【a=b&c=d】//url请求中?之后的内容。
$_SERVER["DOCUMENT_ROOT"]:【D:/phpnow/vhosts/d.com.yii】//文档根目录。在服务器配置文件中定义
basename($_SERVER["PHP_SELF"]):【z.html】//请求执行文件的的文件名
basename($_SERVER["SCRIPT_NAME"]):【x.php】//实际执行文件的文件名
basename($_SERVER["SCRIPT_FILENAME"]):【x.php】//实际执行文件的文件名
basename(__FILE__):【x.php】//实际执行代码的文件名
dirname($_SERVER["PHP_SELF"]):【/x.php/x/y】//请求执行文件的的所在目录
dirname($_SERVER["SCRIPT_NAME"]):【\】//实际执行文件的所在目录
dirname($_SERVER["SCRIPT_FILENAME"]):【D:/phpnow/vhosts/d.com.yii】//实际执行文件的所在目录
dirname(__FILE__):【D:\phpnow\vhosts\d.com.yii】//实际执行代码的所在目录
require_once /a/a.php
$_SERVER["HTTP_HOST"]:【d.com】//当前请求的 Host:即域名信信息
$_SERVER["PHP_SELF"]:【/x.php/x/y/z.html】//请求执行文件的相对地址
$_SERVER["SCRIPT_NAME"]:【/x.php】//实际执行文件相对地址
$_SERVER["SCRIPT_FILENAME"]:【D:/phpnow/vhosts/d.com.yii/x.php】//实际执行文件的绝对路径。
__FILE__ :【D:\phpnow\vhosts\d.com.yii\a\a.php】//实际执行代码的绝对路径。
$_SERVER["REQUEST_URI"]:【/x.php/x/y/z.html?a=b&c=d】//url请求中包括/和之后的所有内容。
$_SERVER["QUERY_STRING"]:【a=b&c=d】//url请求中?之后的内容。
$_SERVER["DOCUMENT_ROOT"]:【D:/phpnow/vhosts/d.com.yii】//文档根目录。在服务器配置文件中定义
basename($_SERVER["PHP_SELF"]):【z.html】//请求执行文件的的文件名
basename($_SERVER["SCRIPT_NAME"]):【x.php】//实际执行文件的文件名
basename($_SERVER["SCRIPT_FILENAME"]):【x.php】//实际执行文件的文件名
basename(__FILE__):【a.php】//实际执行代码的文件名
dirname($_SERVER["PHP_SELF"]):【/x.php/x/y】//请求执行文件的的所在目录
dirname($_SERVER["SCRIPT_NAME"]):【\】//实际执行文件的所在目录
dirname($_SERVER["SCRIPT_FILENAME"]):【D:/phpnow/vhosts/d.com.yii】//实际执行文件的所在目录
dirname(__FILE__):【D:\phpnow\vhosts\d.com.yii\a】//实际执行代码的所在目录
require_once /a/b/b.php
$_SERVER["HTTP_HOST"]:【d.com】//当前请求的 Host:即域名信信息
$_SERVER["PHP_SELF"]:【/x.php/x/y/z.html】//请求执行文件的相对地址
$_SERVER["SCRIPT_NAME"]:【/x.php】//实际执行文件相对地址
$_SERVER["SCRIPT_FILENAME"]:【D:/phpnow/vhosts/d.com.yii/x.php】//实际执行文件的绝对路径。
__FILE__ :【D:\phpnow\vhosts\d.com.yii\a\b\b.php】//实际执行代码的绝对路径。
$_SERVER["REQUEST_URI"]:【/x.php/x/y/z.html?a=b&c=d】//url请求中包括/和之后的所有内容。
$_SERVER["QUERY_STRING"]:【a=b&c=d】//url请求中?之后的内容。
$_SERVER["DOCUMENT_ROOT"]:【D:/phpnow/vhosts/d.com.yii】//文档根目录。在服务器配置文件中定义
basename($_SERVER["PHP_SELF"]):【z.html】//请求执行文件的的文件名
basename($_SERVER["SCRIPT_NAME"]):【x.php】//实际执行文件的文件名
basename($_SERVER["SCRIPT_FILENAME"]):【x.php】//实际执行文件的文件名
basename(__FILE__):【b.php】//实际执行代码的文件名
dirname($_SERVER["PHP_SELF"]):【/x.php/x/y】//请求执行文件的的所在目录
dirname($_SERVER["SCRIPT_NAME"]):【\】//实际执行文件的所在目录
dirname($_SERVER["SCRIPT_FILENAME"]):【D:/phpnow/vhosts/d.com.yii】//实际执行文件的所在目录
dirname(__FILE__):【D:\phpnow\vhosts\d.com.yii\a\b】//实际执行代码的所在目录
直接访问http://d.com/a/a.php/x/y/z.html?a=b&c=d的结果
/a/a.php
$_SERVER["HTTP_HOST"]:【d.com】//当前请求的 Host:即域名信信息
$_SERVER["PHP_SELF"]:【/a/a.php/x/y/z.html】//请求执行文件的相对地址
$_SERVER["SCRIPT_NAME"]:【/a/a.php】//实际执行文件相对地址
$_SERVER["SCRIPT_FILENAME"]:【D:/phpnow/vhosts/d.com.yii/a/a.php】//实际执行文件的绝对路径。
__FILE__ :【D:\phpnow\vhosts\d.com.yii\a\a.php】//实际执行代码的绝对路径。
$_SERVER["REQUEST_URI"]:【/a/a.php/x/y/z.html?a=b&c=d】//url请求中包括/和之后的所有内容。
$_SERVER["QUERY_STRING"]:【a=b&c=d】//url请求中?之后的内容。
$_SERVER["DOCUMENT_ROOT"]:【D:/phpnow/vhosts/d.com.yii】//文档根目录。在服务器配置文件中定义
对了貌似查google pr的东西只是file一个地址而已,如此说了就没有什么难度了。完整代码如下
写了一个小东西记录baidu和google对于站点的收录情况,现在可以查询了,其实也没什么难度,就是去file下远程文件,然后分析下。
对了貌似查google pr的东西只是file一个地址而已,如此说了就没有什么难度了。
完整代码如下,file取得文件,分析,输出:
/**
* 查询百度与谷歌收录
* by www.
* 2013-7-18
*/
$seodetail = array();
$domain = !empty($_GET['q']) ? $_GET['q'] : 'www.mycodes.net';
baidudetail($domain);
googledetail($domain);
var_dump($seodetail);
function baidudetail($domain) {
$baidu_site = 'http://www.baidu.com/baidu?word=site%3A' . $domain;
$baidu_link = 'http://www.baidu.com/baidu?word=link%3A' . $domain;
$baidu_domain = 'http://www.baidu.com/baidu?word=domain%3A' . $domain;
getdetail($baidu_site, 'baidu_site', '相关网页', '篇,用时');
getdetail($baidu_link, 'baidu_link', '相关网页', '篇,用时');
getdetail($baidu_domain, 'baidu_domain', '相关网页', '篇,用时');
}
function googledetail($domain) {
$google_site = 'http://www.google.cn/search?hl=zh-CN&q=site%3A' . $domain;
$google_link = 'http://www.google.cn/search?hl=zh-CN&q=link%3A' . $domain;
getdetail($google_site, 'google_site', '</b> 个结果,', ' 个。 (搜索用时');
getdetail($google_link, 'google_link', '<font size=-1>约有 <b>', '</b> 项链接到 <b>'); //102
}
function getdetail($url, $type, $wordf, $wordb) {
$pagecontent = @file($url);
$pagecontent = implode ('', $pagecontent);
$pagecontent = substr(strstr($pagecontent, $wordf), strlen($wordf));
$pagecontent = substr_replace($pagecontent, '', strpos($pagecontent, $wordb));
returndetail($pagecontent, $type);
}
function returndetail($content, $type) {
global $seodetail;
$seodetail[$type] = empty($content) ? 0 : $content;
}
?>
本文链接:http://www.cnblogs.com/study100/p/3232349.html,转载请注明。
PHP一共给了四个版本,VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,这让我这个菜鸟头疼啊,还好 PHP 官网提供下载的地方左边有个英文 choose 我看懂了,我估摸着就是如何来选择版本的意思吧,于是开始查字典及上网查找,终于看明白了具体意思,拿来做个备忘先。
一、如何选择 PHP5.3 的 VC9 版本和 VC6 版本
VC6 版本是使用 Visual Studio 6 编译器编译的,如果你的 PHP 是用 Apache 来架设的,那你就选择 VC6 版本。
VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你的 PHP 是用 IIS 来架设的,那你就选择 VC9 版本。
二、如何选择 PHP5.3 的 Thread Safe 和 Non Thread Safe 版本
先从字面意思上理解,Thread Safe 是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的 CGI 执行方式而耗尽系统资源。Non Thread Safe 是非线程安全,在执行时不进行线程(Thread)安全检查。
再来看 PHP 的两种执行方式:ISAPI 和 FastCGI。
ISAPI 执行方式是以 DLL 动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以 ISAPI 来执行 PHP,建议选择 Thread Safe 版本;
FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以 FastCGI(无论搭配 IIS 6 或 IIS 7)执行 PHP ,都建议下载、执行 non-thread safe 的 PHP (PHP 的二进位档有两种包装方式:msi 、zip ,请下载 zip 套件)。
而线程安全检查正是为ISAPI方式的PHP准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread Safe的PHP。
所以,对于PHP5.2选择Thread Safe版本安装,而对于PHP5.3则下载None-Thread Safe,执行PHP比较有效率。
本文链接:http://www.cnblogs.com/wlgaojin/p/3232187.html,转载请注明。