预览模式: 普通 | 列表

PHP拆分url并提取域名、方法、参数

 拆分URL的一个很重要的函数就是parse_url();

它可以将一个url地址拆分为一个一维数组
例如:
 
PHP代码
  1. $url = 'http://www.sina.com.cn/abc/de/fg.php?id=1';    
  2. $arr = parse_url($url);    
  3. print_r($arr);    
此时$arr就是一个一维数组
 
PHP代码
  1. Array    
  2. (    
  3.     [scheme] => http    
  4.     [host] => www.sina.com.cn    
  5.     [path] => /abc/de/fg.php    
  6.     [query] => id=1    
  7. )    
它的键值是固定的,如果你想取其中的一个值的时候直接就可以拿到啦
例如:
PHP代码
  1. echo $host = $arr['host'];    
这样就会输出www.sina.com.cn了

Tags: php

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

PHP将相对路径URL转换为绝对路径URL

 在采集程序或者蜘蛛程序中经常会遇到一类问题,就是将网页中相对路径形式的URL转换为绝对路径形式的URL。例如在http://www.abc.cn/blog/1/这个页面中,有一个URL链接为../index.php,那么我们要将它转换为http://www.abc.cn/blog/index.php。下面给出了解决这类问题的代码。该程序能够成功处理各种URL,将其变成绝对形式。

PHP代码
  1. <?php  
  2. $a = 'http://www.abc.com/a/index.html';  
  3. $b = '../abc/a.js';  
  4. echo format_url($b$a);  
  5.   
  6. function format_url($srcurl$baseurl) {  
  7.   $srcinfo = parse_url($srcurl);  
  8.   if(isset($srcinfo['scheme'])) {  
  9.     return $srcurl;  
  10.   }  
  11.   $baseinfo = parse_url($baseurl);  
  12.   $url = $baseinfo['scheme'].'://'.$baseinfo['host'];  
  13.   if(substr($srcinfo['path'], 0, 1) == '/') {  
  14.     $path = $srcinfo['path'];  
  15.   }else{  
  16.     $path = dirname($baseinfo['path']).'/'.$srcinfo['path'];  
  17.   }  
  18.   $rst = array();  
  19.   $path_array = explode('/'$path);  
  20.   if(!$path_array[0]) {  
  21.     $rst[] = '';  
  22.   }  
  23.   foreach ($path_array AS $key => $dir) {  
  24.     if ($dir == '..') {  
  25.       if (end($rst) == '..') {  
  26.         $rst[] = '..';  
  27.       }elseif(!array_pop($rst)) {  
  28.         $rst[] = '..';  
  29.       }  
  30.     }elseif($dir && $dir != '.') {  
  31.       $rst[] = $dir;  
  32.     }  
  33.    }  
  34.   if(!end($path_array)) {  
  35.     $rst[] = '';  
  36.   }  
  37.   $url .= implode('/'$rst);  
  38.   return str_replace('\\', '/', $url);  
  39. }  
  40. ?>  

 

Tags: php

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

 广告位

↑返回顶部↑