非常实用的PHP代码片段
May 25, 2016 pm 04:44 PM
phpコードスニペット
从网页中提取关键词,从指定页面中提取关键词并显示出来,代码如下:
<?php $meta = get_meta_tags('http://www.phprm.com/'); $keywords = $meta['keywords']; // 分割关键词 $keywords = explode(',', $keywords); // 整理 $keywords = array_map('trim', $keywords); // 去掉空内容 $keywords = array_filter($keywords); print_r($keywords); ?>
ログイン後にコピー
得到页面中所有的链接,下面代码可以使用 PHP DOM 获取指定页面中的所有链接,仅作抛砖引玉,具体使用自由发挥,代码如下:
<?php $html = file_get_contents('http://www.phprm.com'); $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('href'); echo $url . '<br />'; } ?>
ログイン後にコピー
自动把页面中的 URL 转换成可点击的超链接,如果你发表一些文章或者做一些页面,要想放上一个超链接,必须编写一个 a 标签。使用下面这段代码可以方便的将 URL 转换成超链接输出,实现方法比较简单,大体思路就是用正则匹配出来 URL 然后处理输出超链接,代码如下:
<?php function _make_url_clickable_cb($matches) { $ret = ''; $url = $matches[2]; if (emptyempty($url)) return $matches[0]; // 去掉 URL 后面的标点符号 if (in_array(substr($url, -1) , array( '.', ',', ';', ':' )) === 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 = ''; $dest = $matches[2]; $dest = 'http://' . $dest; if (emptyempty($dest)) return $matches[0]; if (in_array(substr($dest, -1) , array( '.', ',', ';', ':' )) === 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] . '@' . $matches[3]; return $matches[1] . "<a href="mailto: $email">$email</a>"; } function make_clickable($ret) { $ret = ' ' . $ret; $ret = preg_replace_callback('#([s>])([w]+?://[wx80-xff#$%&~/.-;:=,?@[]+]*)#is', '_make_url_clickable_cb', $ret); $ret = preg_replace_callback('#([s>])((www|ftp).[wx80-xff#$%&~/.-;:=,?@[]+]*)#is', '_make_web_ftp_clickable_cb', $ret); $ret = preg_replace_callback('#([s>])([.0-9a-z_+-]+)@(([0-9a-z-]+.)+[0-9a-z]{2,})#i', '_make_email_clickable_cb', $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('http://www.phprm.com/logo.gif'); file_put_contents('/images/logo.gif', $image);
ログイン後にコピー
去掉文中的无用标签,当从一些文本编辑器(例如 Word)中将文本复制到网页编辑器中时,可能会有一些额外的无用标签,例如一些指定文字样式的 style 等,下面代码可以通过正则匹配来去掉这些无用标签,净化文本,代码如下:
<?php function cleanHTML($html) { // 首先去掉无用的标签(可以自定义更多需要清除的标签) $html = ereg_replace("<(/)?(font|span|del|ins)[^>]*>", "", $html); // 然后再运行两遍去掉无用属性 $html = ereg_replace("<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|\'[^\']*\'|[^>]+)([^>]*)>", "<1>", $html); $html = ereg_replace("<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|\'[^\']*\'|[^>]+)([^>]*)>", "<1>", $html); return $html } ?>
ログイン後にコピー
本文链接:
收藏随意^^请保留教程地址.
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7288
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1342
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1206
29

