预览模式: 普通 | 列表

php实现相对路径转绝对路径

//将一个URL转换为完整URL 

function format_url($srcurl, $baseurl) {    
  $srcinfo = parse_url($srcurl);  
  if(isset($srcinfo['scheme'])) {  
    return $srcurl;  
  }  
  $baseinfo = parse_url($baseurl);  
  $url = $baseinfo['scheme'].'://'.$baseinfo['host'];  
  if(substr($srcinfo['path'], 0, 1) == '/') {  
    $path = $srcinfo['path'];  
  }else{  
    $path = dirname($baseinfo['path']).'/'.$srcinfo['path'];  
  }  
  $rst = array();  
  $path_array = explode('/', $path);  
  if(!$path_array[0]) {  
    $rst[] = '';  
  }  
  foreach ($path_array AS $key => $dir) {  
    if ($dir == '..') {  
      if (end($rst) == '..') {  
        $rst[] = '..';  
      }elseif(!array_pop($rst)) {  
        $rst[] = '..';  
      }  
    }elseif($dir && $dir != '.') {  
      $rst[] = $dir;  
    }  
   }  
  if(!end($path_array)) {  
    $rst[] = '';  
  }  
  $url .= implode('/', $rst);  
  return str_replace('\\', '/', $url); 

$srcurl = '../../guestbook.php'; 
$baseurl = 'https://blog.guanjianci.net/abc/def/ghi/index.html';

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 8570

MySQL记录存在则更新,不存在则插入

Create TABLE `tb_file_authorize` (
  `authorize_id` int(11) NOT NULL auto_increment,
  `str_id` int(11) default NULL COMMENT '用户标识',
  `file_id` int(11) default NULL COMMENT '文件标识',
  `right_id` int(11) default NULL COMMENT '权限标识',
  `catalog_id` int(11) default NULL COMMENT '目录标识',
  `catalog_index` varchar(100) character set utf8 collate utf8_bin default NULL COMMENT '目录索引标识',
  `expired_date` varchar(30) default NULL COMMENT '过期时间',
  `limit_times` int(11) default NULL COMMENT '限制次数',
  `open_times` int(11) default NULL COMMENT '已经打开次数',
  `start_date` varchar(30) default NULL COMMENT '开始时间',
  `end_date` varchar(30) default NULL COMMENT '结束时间',
  `grant_user` varchar(30) default NULL,
  PRIMARY KEY  (`authorize_id`),
  KEY `file_right_index` (`str_id`,`file_id`),
  UNIQUE KEY `update_or_insert` (`str_id`,`file_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

我遇到的问题:

   str_id标识用户的唯一标识,fiile_id为文件的唯一标识,此表为中间表str_id,与file_id确定right_id

当该表中存在str_id与file_id的记录时,更新right_id,否则插入一条新的记录,SQL语句如下:

查看更多...

Tags: mysql

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3796

解决w3wp.exe内存占用问题

在IIS6下,经常出现w3wp的内存占用不能及时释放,从而导致服务器响应速度很慢。
今天研究了一下,可以做以下配置:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。同时,设置同时运行的w3wp进程数目为1。再设置当内存或者cpu占用超过多少,就自动回收内存
一般来说,这样就可以解决了。但仍然会出现个别网站因为程序问题,不能正确释放。
那么,怎么样才能找到是哪一个网站的?
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池
3、到iis中察看该应用程序池对应的网站,就ok了

Tags: iis6

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2862

IIS6.0无法重新启动,提示不支持此接口~

解决方案,将以下代码用文本打开,保存为reg文件,后双击运行,问题解决
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Interface\{E8FB8620-588F-11D2-9D61-00C04F79C5FE}]
@="IIisServiceControl"
[HKEY_CLASSES_ROOT\Interface\{E8FB8620-588F-11D2-9D61-00C04F79C5FE}\NumMethods]
@="12"
[HKEY_CLASSES_ROOT\Interface\{E8FB8620-588F-11D2-9D61-00C04F79C5FE}\ProxyStubClsid]
@="{00020424-0000-0000-C000-000000000046}"
[HKEY_CLASSES_ROOT\Interface\{E8FB8620-588F-11D2-9D61-00C04F79C5FE}\ProxyStubClsid32]
@="{E8FB8620-588F-11D2-9D61-00C04F79C5FE}"
[HKEY_CLASSES_ROOT\Interface\{E8FB8620-588F-11D2-9D61-00C04F79C5FE}\TypeLib]
@="{E8FB8614-588F-11D2-9D61-00C04F79C5FE}"
"Version"="1.0"
 

Tags: iis6

分类:业界文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4087

1xx - 信息提示
这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。

· 100 - Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)
· 101 - Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)

2xx - 成功
这类状态代码表明服务器成功地接受了客户端请求。

· 200 - OK 一切正常,对GET和POST请求的应答文档跟在后面。
· 201 - Created 服务器已经创建了文档,Location头给出了它的URL。
· 202 - Accepted 已经接受请求,但处理尚未完成。
· 203 - Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝,非权威性信息(HTTP 1.1新)。
· 204 - No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。
· 205 - Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容(HTTP 1.1新)。
· 206 - Partial Content 客户发送了一个带有Range头的GET请求(分块请求),服务器完成了它(HTTP 1.1新)


3xx - 重定向
客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。

查看更多...

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 6385

<configuration>
<location path="." inheritInChildApplications="false">
......
</location>
</configuration>

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5192

怎么检查mx记录是否生效

开始--运行--cmd
nslookup -qe=mx 163.com

Tags: mx记录

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2824

Php显示详细错误提示信息~

在php.ini中修改如下参数:
error_reporting = E_ERROR
display_errors = On

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3203

php获取http远程文件头信息

方法一:

get_headers(url);//内置函数

方法二:

function getHttpHead($url){
$url = parse_url($url);
if($fp = @fsockopen($url['host'],empty($url['port'])?80:$url['port'],$error)){
fputs($fp,"GET ".(empty($url['path'])?'/':$url['path'])." HTTP/1.1\r\n");
fputs($fp,"Host:$url[host]\r\n\r\n");
$ret = '';
while(!feof($fp)){
$tmp = fgets($fp);
if(trim($tmp) == ''){
break;
}
$ret .= $tmp;
}
return $ret;
}else{
return null;
}
}

示例:echo getHttpHead('http://www.jlist.cn');

查看更多...

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 5471

php计算脚本执行时间

<?php
class Timer {                               //声明一个计算脚本运行时间的类
    private $startTime;                    //保存脚本开始执行时的时间(以微秒的形式保存)
    private $stopTime;                     //保存脚本结束执行时的时间(以微秒的形式保存)
    function __construct(){                 //构造方法,在创建对象时初始化成员属性
        $this->startTime=0;                 //初始化成员属性startTime的值为0
        $this->stopTime=0;                  //初始化成员属性stopTime的值为0
    }
    function start(){                       //在脚本开始处调用获取脚本开始时间的微秒值
        $this->startTime = microtime(true);     //将获取的时间赋给成员属性$startTime
    }
 function stop(){                        //在脚本结束处调用获取脚本结束时间的微秒值
        $this->stopTime= microtime(true);   //将获取的时间赋给成员属性$stopTime
    }
    function spent(){                       //返回同一脚本中两次获取时间的差值
        return round(($this->stopTime- $this->startTime) , 4);//计算后以4舍5入保留4位返回
    }
}
$timer = new Timer();                       //创建Timer类的对象
$timer->start();                            //在脚本文件开始执行时调用这个方法
usleep(1000);                           //脚本的主体内容,这里以休眠一毫秒为例
$timer->stop();                             //在脚本文件结尾处调用这个方法
echo "执行该脚本用时<b>".$timer->spent()."</b>秒"; //输出页面执行时运行的时间
?>

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2943

javascript窗口自动最大化代码

<script language="javascript">
self.moveTo(0,0)
self.resizeTo(screen.availWidth,screen.availHeight)
</script>

Tags: javascript

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2486

2009全世界网民人数按国家统计数据

国家 网民数量 时间
China 384,000,000 2009
United States 230,630,000 2009
Japan 95,979,000 2009
Brazil 72,027,700 2009
Germany 61,973,100 2009
India 51,750,000 2009
United Kingdom 46,683,900 2009
Russia 45,250,000 2009
France 42,315,400 2009
Korea, South 36,837,000 2009
Turkey 25,405,400 2009
Spain 25,240,000 2009
Canada 25,086,000 2009
Italy 24,991,500 2009
Nigeria 23,982,200 2009
Mexico 23,567,400 2009
Iran 23,000,000 2009
Vietnam 20,834,000 2009
Poland 18,679,100 2009
Pakistan 18,500,000 2009
Indonesia 18,000,000 2009
Colombia 17,329,700 2009
Thailand 16,100,000 2009
Australia 15,170,000 2009
Taiwan 15,143,000 2009
Malaysia 15,074,000 2009
Netherlands 14,304,600 2009
Egypt 13,573,000 2009
Argentina 11,212,200 2009
Morocco 10,442,500 2009
Sweden 8,085,500 2009
Saudi Arabia 7,761,800 2009
Belgium 7,292,300 2009
Venezuela 7,167,400 2009
Peru 7,128,300 2009
Romania 6,194,800 2009
Czech Republic 6,027,700 2009
Austria 5,936,700 2009
Hungary 5,873,100 2009
Switzerland 5,806,800 2009
Philippines 5,618,000 2009
Chile 5,456,200 2009
Ukraine 4,875,200 2009
Greece 4,844,600 2009
Algeria 4,700,000 2009
Hong Kong 4,678,100 2009
Denmark 4,578,600 2009
Portugal 4,475,700 2009
Finland 4,382,700 2009
Sudan 4,200,000 2009
South Africa 4,187,000 2009
Norway 3,934,800 2009
Ecuador 3,882,000 2009
Slovakia 3,566,500 2009
Syria 3,565,000 2009
Israel 3,500,000 2009
Singapore 3,370,000 2009
Kenya 3,359,600 2009
Serbia 3,300,000 2009
Belarus 3,106,900 2009
New Zealand 3,047,000 2009
United Arab Emirates 2,922,000 2009
Tunisia 2,800,000 2009
Ireland 2,774,900 2009
Bulgaria 2,647,100 2009
Uganda 2,500,000 2009
Uzbekistan 2,469,000 2009
Azerbaijan 2,444,600 2009
Croatia 2,237,800 2009
Dominican Republic 2,147,400 2009
Guatemala 1,960,000 2009
Lithuania 1,826,500 2009
Kazakhstan 1,707,000 2009
Jordan 1,595,200 2009
Jamaica 1,540,000 2009
Costa Rica 1,460,000 2009
Cuba 1,450,000 2009
Zimbabwe 1,421,000 2009
Latvia 1,369,600 2009
Uruguay 1,340,000 2009
Bosnia and Herzegovina 1,307,600 2009
Sri Lanka 1,163,500 2009
Slovenia 1,125,700 2009
Bolivia 1,050,000 2009
Georgia 1,024,000 2009
Senegal 1,020,000 2009
Haiti 1,000,000 2009
Puerto Rico 1,000,000 2009
Albania 1,000,000 2009
Kuwait 1,000,000 2009
Ghana 997,000 2009
Honduras 958,000 2009
Lebanon 945,000 2009
Panama 934,500 2009
Paraguay 894,200 2009
Estonia 888,100 2009
Kyrgyzstan 850,000 2009
Moldova 850,000 2009
Macedonia 847,900 2009
Cameroon 725,000 2009
Zambia 700,000 2009
Côte d'Ivoire 660,000 2009
El Salvador 650,000 2009
Tajikistan 600,000 2009
Oman 557,000 2009
Bangladesh 556,000 2009
Angola 550,000 2009
Laos 527,400 2009
Tanzania 520,000 2009
Afghanistan 500,000 2009
Nepal 499,000 2009
Qatar 436,000 2009
Bahrain 402,900 2009
Luxembourg 387,000 2009
Yemen 370,000 2009
Ethiopia 360,000 2009
West Bank 356,000 2009
Mozambique 350,000 2009
Togo 350,000 2009
Cyprus 334,400 2009
Mongolia 330,000 2009
Libya 323,000 2009
Madagascar 316,100 2009
Malawi 316,100 2009
Iraq 300,000 2009
Rwanda 300,000 2009
Montenegro 294,000 2009
Congo, Democratic Republic of the 290,000 2009
Iceland 285,700 2009
Mauritius 282,000 2009
Réunion 280,000 2009
Macau 259,000 2009
Trinidad and Tobago 227,000 2009
Brunei 217,000 2009
Guyana 205,000 2009
Mali 200,000 2009
Eritrea 200,000 2009
Malta 198,800 2009
Armenia 191,000 2009
Barbados 188,000 2009
Nicaragua 185,000 2009
Benin 160,000 2009
Martinique 160,000 2009
Congo, Republic of the 155,000 2009
Burkina Faso 140,000 2009
Chad 130,000 2009
Papua New Guinea 120,000 2009
Botswana 120,000 2009
Gambia, The 114,200 2009
Namibia 113,500 2009
Burma 108,900 2009
Bahamas, The 106,500 2009
Fiji 103,000 2009
Guadeloupe 103,000 2009
Cape Verde 102,800 2009
Somalia 102,000 2009
Saint Lucia 100,000 2009
Guinea 90,000 2009
Gabon 90,000 2009
French Polynesia 90,000 2009
New Caledonia 85,000 2009
Guam 85,000 2009
Niger 80,000 2009
Swaziland 80,000 2009
Turkmenistan 75,000 2009
Cambodia 74,000 2009
Lesotho 73,300 2009
Maldives 71,700 2009
Saint Vincent and the Grenadines 66,000 2009
Burundi 65,000 2009
Antigua and Barbuda 65,000 2009
Mauritania 60,000 2009
Andorra 59,100 2009
French Guiana 54,000 2009
Bermuda 51,000 2009
Suriname 50,000 2009
Guernsey 46,100 2009
Bhutan 45,000 2009
Faroe Islands 37,500 2009
Guinea-Bissau 37,100 2009
Greenland 36,000 2009
Belize 34,000 2009
Seychelles 33,900 2009
British Virgin Islands 30,000 2009
Jersey 29,000 2009
Dominica 27,500 2009
Djibouti 25,900 2009
Sao Tome and Principe 24,800 2009
Aruba 24,000 2009
Grenada 24,000 2009
Liechtenstein 23,500 2009
Comoros 23,000 2009
Cayman Islands 23,000 2009
Monaco 22,000 2009
Liberia 20,000 2009
Central African Republic 19,000 2009
Vanuatu 17,000 2009
San Marino 17,000 2009
Micronesia, Federated States of 16,000 2009
Saint Kitts and Nevis 16,000 2009
Sierra Leone 13,900 2009
Equatorial Guinea 12,000 2009
Solomon Islands 10,000 2009
Samoa 9,000 2009
Tonga 8,400 2009
Gibraltar 6,500 2009
Cook Islands 5,000 2009
Anguilla 4,500 2009
Tuvalu 4,200 2009
Falkland Islands (Islas Malvinas) 2,800 2009
Marshall Islands 2,200 2009
Kiribati 2,000 2009
Timor-Leste 1,800 2009
Wallis and Futuna 1,200 2009
Montserrat 1,200 2009
Niue 1,000 2009
Saint Helena 800 2009
Tokelau 800 2009
分类:业界文摘 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3046

 广告位

↑返回顶部↑