当前位置:首页 > PHP教程 > php应用 > 列表

非常实用的PHP代码片段

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-03 14:49:16 浏览: 评论:0 

从网页中提取关键词,从指定页面中提取关键词并显示出来,代码如下:

  1. $meta = get_meta_tags('http://www.phpfensi.com/'); 
  2. $keywords = $meta['keywords']; 
  3. // 分割关键词 
  4. $keywords = explode(','$keywords ); 
  5. // 整理 
  6. $keywords = array_map'trim'$keywords ); 
  7. // 去掉空内容 
  8. $keywords = array_filter$keywords ); 
  9. print_r( $keywords ); 

得到页面中所有的链接,下面代码可以使用 PHP DOM 获取指定页面中的所有链接,仅作抛砖引玉,具体使用自由发挥,代码如下:

  1. $html = file_get_contents('http://www.phpfensi.com'); 
  2. $dom = new DOMDocument(); 
  3. @$dom->loadHTML($html); 
  4. $xpath = new DOMXPath($dom); 
  5. $hrefs = $xpath->evaluate("/html/body//a"); 
  6.  
  7. for ($i = 0; $i < $hrefs->length; $i++) { 
  8.        $href = $hrefs->item($i); 
  9.        $url = $href->getAttribute('href'); 
  10.        echo $url.'<br />'

自动把页面中的 URL 转换成可点击的超链接,如果你发表一些文章或者做一些页面,要想放上一个超链接,必须编写一个 a 标签。使用下面这段代码可以方便的将 URL 转换成超链接输出,实现方法比较简单,大体思路就是用正则匹配出来 URL 然后处理输出超链接,代码如下:

  1. function _make_url_clickable_cb($matches) { 
  2.  $ret = ''
  3.  $url = $matches[2]; 
  4.  
  5.  if ( emptyempty($url) ) 
  6.   return $matches[0]; 
  7.  // 去掉 URL 后面的标点符号 
  8.  if ( in_array(substr($url, -1), array('.'','';'':')) === true ) { 
  9.   $ret = substr($url, -1); 
  10.   $url = substr($url, 0, strlen($url)-1); 
  11.  } 
  12.  return $matches[1] . "<a href="$url" rel="nofollow">$url</a>" . $ret
  13.  
  14. function _make_web_ftp_clickable_cb($matches) { 
  15.  $ret = ''
  16.  $dest = $matches[2]; 
  17.  $dest = 'http://' . $dest
  18.  
  19.  if ( emptyempty($dest) ) 
  20.   return $matches[0]; 
  21.  if ( in_array(substr($dest, -1), array('.'','';'':')) === true ) { 
  22.   $ret = substr($dest, -1); 
  23.   $dest = substr($dest, 0, strlen($dest)-1); 
  24.  } 
  25.  return $matches[1] . "<a href="$dest" rel="nofollow">$dest</a>" . $ret
  26.  
  27. function _make_email_clickable_cb($matches) { 
  28.  $email = $matches[2] . '@' . $matches[3]; 
  29.  return $matches[1] . "<a href="mailto:$email">$email</a>"
  30.  
  31. function make_clickable($ret) { 
  32.  $ret = ' ' . $ret
  33.  $ret = preg_replace_callback('#([s>])([w]+?://[w\x80-\xff#$%&~/.-;:=,?@[]+]*)#is''_make_url_clickable_cb'$ret); 
  34.  $ret = preg_replace_callback('#([s>])((www|ftp).[w\x80-\xff#$%&~/.-;:=,?@[]+]*)#is''_make_web_ftp_clickable_cb'$ret); 
  35.  $ret = preg_replace_callback('#([s>])([.0-9a-z_+-]+)@(([0-9a-z-]+.)+[0-9a-z]{2,})#i''_make_email_clickable_cb'$ret); 
  36.  
  37.  $ret = preg_replace("#(<a( [^>]+?>|>))<a [^>]+?>([^>]+?)</a></a>#i""$1$3</a>"$ret); 
  38.  $ret = trim($ret); 
  39.  return $ret

用 PHP 生成 Data URI 代码,通常把图片编码成 Data URI 格式用在网页中来减少 HTTP 请求来提升前端性能,同时还有一些其他的用途,下面代码可以将文件编码成 Data URI,代码如下:

  1. function data_uri($file$mime) { 
  2.   $contents=file_get_contents($file); 
  3.   $base64=base64_encode($contents); 
  4.   echo "data:$mime;base64,$base64"

将远程图片下载到本地服务器,特别是转载文章等,为了防止对方网站关掉而导致图片丢失,通常会在发表文章的时候,将远程服务器上的图片下载到本地服务器上,下面代码简单的实现了这个需求,更多的储存位置、遍历链接还需要你自己自定义,代码如下:

  1. $image = file_get_contents('http://www.phpfensi.com/logo.gif'); 
  2. file_put_contents('/images/logo.gif'$image);  

去掉文中的无用标签,当从一些文本编辑器(例如 Word)中将文本复制到网页编辑器中时,可能会有一些额外的无用标签,例如一些指定文字样式的 style 等,下面代码可以通过正则匹配来去掉这些无用标签,净化文本,代码如下:

  1. function cleanHTML($html) { 
  2. // 首先去掉无用的标签(可以自定义更多需要清除的标签) 
  3. $html = ereg_replace("<(/)?(font|span|del|ins)[^>]*>","",$html); 
  4. // 然后再运行两遍去掉无用属性 
  5. $html = ereg_replace("<([^>]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","<1>",$html); 
  6. $html = ereg_replace("<([^>]*)(class|lang|style|size|face)=("[^"]*"|'[^']*'|[^>]+)([^>]*)>","<1>",$html); 
  7. return $html 

Tags: PHP代码片段 PHP实用代码

分享到: