Heim > php教程 > php手册 > Hauptteil

非常实用的PHP代码片段

WBOY
Freigeben: 2016-05-25 16:44:52
Original
1147 Leute haben es durchsucht

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

<?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);
?>
Nach dem Login kopieren

得到页面中所有的链接,下面代码可以使用 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;;
}
?>
Nach dem Login kopieren

自动把页面中的 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;
    }
?>
Nach dem Login kopieren

用 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";
    }
?>
Nach dem Login kopieren

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

$image = file_get_contents(&#39;http://www.phprm.com/logo.gif&#39;); 
file_put_contents(&#39;/images/logo.gif&#39;, $image);
Nach dem Login kopieren

去掉文中的无用标签,当从一些文本编辑器(例如 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
    }
?>
Nach dem Login kopieren

               
               

本文链接:

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!