首页 > php教程 > php手册 > 非常实用的PHP代码片段

非常实用的PHP代码片段

WBOY
发布: 2016-05-25 16:44:52
原创
1183 人浏览过

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

<?php
$meta = get_meta_tags(&#39;http://www.phprm.com/&#39;);
$keywords = $meta[&#39;keywords&#39;];
// 分割关键词
$keywords = explode(&#39;,&#39;, $keywords);
// 整理
$keywords = array_map(&#39;trim&#39;, $keywords);
// 去掉空内容
$keywords = array_filter($keywords);
print_r($keywords);
?>
登录后复制

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

<?php
$html = file_get_contents(&#39;http://www.phprm.com&#39;);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
    $href = $hrefs->item($i);
    $url = $href->getAttribute(&#39;href&#39;);
    echo $url . &#39;<br />&#39;;
}
?>
登录后复制

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

<?php
function _make_url_clickable_cb($matches) {
    $ret = &#39;&#39;;
    $url = $matches[2];
    if (emptyempty($url)) return $matches[0];
    // 去掉 URL 后面的标点符号
    if (in_array(substr($url, -1) , array(
        &#39;.&#39;,
        &#39;,&#39;,
        &#39;;&#39;,
        &#39;:&#39;
    )) === true) {
        $ret = substr($url, -1);
        $url = substr($url, 0, strlen($url) - 1);
    }
    return $matches[1] . "<a href="$url" rel="nofollow">$url</a>" . $ret;
}
function _make_web_ftp_clickable_cb($matches) {
    $ret = &#39;&#39;;
    $dest = $matches[2];
    $dest = &#39;http://&#39; . $dest;
    if (emptyempty($dest)) return $matches[0];
    if (in_array(substr($dest, -1) , array(
        &#39;.&#39;,
        &#39;,&#39;,
        &#39;;&#39;,
        &#39;:&#39;
    )) === true) {
        $ret = substr($dest, -1);
        $dest = substr($dest, 0, strlen($dest) - 1);
    }
    return $matches[1] . "<a href="$dest" rel="nofollow">$dest</a>" . $ret;
}
function _make_email_clickable_cb($matches) {
    $email = $matches[2] . &#39;@&#39; . $matches[3];
    return $matches[1] . "<a href="mailto:
        $email">$email</a>";
    }
    function make_clickable($ret) {
        $ret = &#39; &#39; . $ret;
        $ret = preg_replace_callback(&#39;#([s>])([w]+?://[wx80-xff#$%&~/.-;:=,?@[]+]*)#is&#39;, &#39;_make_url_clickable_cb&#39;, $ret);
        $ret = preg_replace_callback(&#39;#([s>])((www|ftp).[wx80-xff#$%&~/.-;:=,?@[]+]*)#is&#39;, &#39;_make_web_ftp_clickable_cb&#39;, $ret);
        $ret = preg_replace_callback(&#39;#([s>])([.0-9a-z_+-]+)@(([0-9a-z-]+.)+[0-9a-z]{2,})#i&#39;, &#39;_make_email_clickable_cb&#39;, $ret);
        $ret = preg_replace("#(<a( [^>]+?>|>))<a [^>]+?>([^>]+?)</a></a>#i", "$1$3</a>", $ret);
        $ret = trim($ret);
        return $ret;
    }
?>
登录后复制

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

<?php
    function data_uri($file, $mime) {
        $contents = file_get_contents($file);
        $base64 = base64_encode($contents);
        echo "data:$mime;base64,$base64";
    }
?>
登录后复制

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

$image = file_get_contents(&#39;http://www.phprm.com/logo.gif&#39;); 
file_put_contents(&#39;/images/logo.gif&#39;, $image);
登录后复制

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

<?php
    function cleanHTML($html) {
        // 首先去掉无用的标签(可以自定义更多需要清除的标签)
        $html = ereg_replace("<(/)?(font|span|del|ins)[^>]*>", "", $html);
        // 然后再运行两遍去掉无用属性
        $html = ereg_replace("<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|\&#39;[^\&#39;]*\&#39;|[^>]+)([^>]*)>", "<1>", $html);
        $html = ereg_replace("<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|\&#39;[^\&#39;]*\&#39;|[^>]+)([^>]*)>", "<1>", $html);
        return $html
    }
?>
登录后复制

               
               

本文链接:

收藏随意^^请保留教程地址.

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板