月度归档:2010年09月

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

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

[codesyntax lang=”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 = ‘http://www.msphome.cn/index.php/ddd.html’;
echo format_url($srcurl, $baseurl);

?>
[/codesyntax]

PHP读取各种文档内容并转换为TXT文档

    最近研究全文索引技术,要对局域网内各个资源站的全部内容进行全部索引。为了提高索引精度,要求索引MS WORD 的DOC、DOCX文件格式、PPT、PPTX,Excel的XLS/XLSX文件和PDF文件的内容。要索引这些二进制文件,必须先把他们转换成纯文本格式才行。查到很多资料,很多都是利用Office的COM组件来读取这些文件的内容。但是这种方法只适用于Windows平台,而我们的PHP系统的运行平台是LINUX生产服务器。多方搜索发现国内很少有这些资料。无奈去Google。在浏览了大量相关论坛之后终于成功解决这个PHP 解析二进制文档文件转换为txt文本格式的问题。

   具体方法如下:
继续阅读