`

六个有用的 PHP 片段或技巧

    博客分类:
  • PHP
php 
阅读更多
从网页中提取关键词

从指定页面中提取关键词并显示出来。

$meta = get_meta_tags('http://blog.wpjam.com/');
$keywords = $meta['keywords'];
// 分割关键词
$keywords = explode(',', $keywords );
// 整理
$keywords = array_map( 'trim', $keywords );
// 去掉空内容
$keywords = array_filter( $keywords );

print_r( $keywords );
得到页面中所有的链接

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

$html = file_get_contents('http://www.example.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 然后处理输出超链接。

function _make_url_clickable_cb($matches) {
	$ret = '';
	$url = $matches[2];
 
	if ( empty($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 ( empty($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]+?://[\w\\x80-\\xff\#$%&~/.\-;:=,?@\[\]+]*)#is', '_make_url_clickable_cb', $ret);
	$ret = preg_replace_callback('#([\s>])((www|ftp)\.[\w\\x80-\\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。

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.url.com/image.jpg');
file_put_contents('/images/image.jpg', $image);
去掉文中的无用标签

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

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
}

 

分享到:
评论

相关推荐

    10个超级有用的PHP代码片段果断收藏

    本文将分享10个超级有用的PHP代码片段,帮助你更好地理解和运用PHP。 1. **计算经纬度之间的距离** 这个函数`getDistanceBetweenPointsNew`使用了Haversine公式来计算地球上两点(由经度和纬度定义)之间的距离。...

    非常有用的9个PHP代码片段.pdf

    本文将深入解析提供的三个非常有用的PHP代码片段,它们可以帮助优化网页性能,跟踪邮件阅读状态,以及简化文件合并过程。 1. **创建数据URI** 数据URI是一种在HTML、CSS或JavaScript中内联表示资源的方法,它可以...

    注释PHP和html混合代码的小技巧(分享)

    这个方法的好处在于,它允许你在不删除或逐行注释的情况下快速隐藏代码。这对于临时禁用某些功能或者在调试过程中非常有用。不过,需要注意的是,虽然代码在逻辑上被“注释”了,实际上它们仍然存在于文件中,因此在...

    必须收藏的php实用代码片段

    除了上述代码片段,还有一些其他实用技巧,例如处理日期和时间、验证输入、发送邮件、数据库操作等。在PHP中,了解如何利用内置函数和库如`DateTime`类、`filter_var`、`PDO`进行数据库操作等,可以极大地增强你的...

    基于PHP的ESFramework之动态组Demophp版源码.zip

    在`ESFramework`中,"动态组"是一个关键概念,它允许开发者根据需求动态地创建和管理对象的集合,这种机制对于处理如用户分组、权限控制等场景非常有用。动态组可以灵活地添加、删除或修改成员,无需预先定义所有...

    PHP编程一百例.gif

    "PHP编程一百例.gif"这个资源很可能是一个包含了一系列PHP编程示例的动态图像文件,旨在帮助初学者或有一定基础的开发者通过实例学习和提升PHP编程技巧。 PHP模板技术是PHP开发中的一个重要概念,它用于分离应用...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    其他一些对数组或哈希表有用的函数包括sort(),next(),prev()和each()。 对象 使用new语句产生一个对象: class foo { function do_foo () { echo "Doing foo."; } } $bar = new foo; $bar-&gt;do_foo(); 改变变量...

    OReilly.PHP.Cookbook.3rd.Edition

    - 如何使用PHP函数如`substr()`或`mb_substr()`来获取字符串中的某个片段。 - 字符串索引的概念及其在PHP中的应用。 2. **提取子字符串**(1.2 Extracting Substrings) - 使用`strstr()`、`strtok()`等函数提取...

    awesome-symfony:有用的Symfony片段的集合

    【标题】:“awesome-symfony:有用的Symfony片段的集合” 这个标题揭示了资源的主要内容,即一个关于Symfony框架的精选片段集合。Symfony是一款强大的PHP框架,用于构建高效、可维护的Web应用程序。"awesome-...

    PHP中对URL、HTTP的处理.rar

    在处理URL中的查询参数时,这个函数非常有用。同样,`http_build_query()`则用于将数组转换为URL查询字符串。 在网站开发中,URL路由是另一个关键概念。PHP可以通过自定义函数或框架(如Laravel、Symfony等)实现...

    wordpress CMS 开发框架下,php产物。可以用来做博客

    在深入探讨给定的文件内容之前,我们先来...无论是通过代码片段控制页面布局,还是通过插件和主题增强功能和外观,WordPress都提供了丰富的工具和灵活性,使得每个人都能根据自己的需求和创意打造独一无二的在线空间。

    IDA使用的几个技巧

    ### IDA使用的几个技巧 #### 一、处理sp-analysis failed错误 在使用IDA进行反编译生成C代码的过程中,有时会遇到`sp-analysis failed`这一错误提示。此问题通常是由于IDA在分析某个外部函数调用时对堆栈指针进行...

    php截取字符

    在给定的PHP代码片段中,我们关注到的是如何使用PHP来截取字符串的一个具体示例,这在处理大量文本数据、生成摘要或限制显示长度时非常有用。下面,我们将深入探讨这一知识点,并结合实际应用进行详细解析。 ### ...

    php面试常用知识.pdf

    由于提供的内容片段不完整,且存在识别错误,以下内容将基于片段中可辨识的部分进行知识点的说明。 1. PHP Session管理: PHP session是用于跟踪用户状态的机制。它通过生成唯一的会话ID,并将其存储在用户的...

    php笔记-欢迎增加

    - 使用`define()`函数定义每个字符或部分字符为常量。 - 通过拼接这些常量来形成完整的“Hello World”字符串。 - 使用`eval()`函数执行该字符串。 #### 三、网页内容抓取 - **概念**:网页内容抓取是指从网页...

    php实现比较两个字符串日期大小的方法

    `strtotime()` 是一个非常有用的函数,它可以将任何英文文本日期或时间描述解析为Unix时间戳。例如,`strtotime('2009-10-13')` 将返回对应的Unix时间戳,这是一个自1970年1月1日以来的秒数。 接下来,我们来看提供...

    php7-in-authentic:这些是我在阅读《 PHP 7 in autentic》一书时收集的想法和代码片段

    5. 全局静态方法:在PHP 7中,可以使用`self::class`来获取类名,这在处理反射或依赖注入时非常有用。 6. 函数的统一变量警告消除:PHP 7不再对未初始化的变量抛出E_NOTICE错误,而是自动将其设置为NULL。 7. 更...

    up_1055326_phpmobilizer_mfwrh.rar

    1. **de08e81519c09e0a5a1e397906526af8.txt** - 这可能是一个日志文件或者包含特定数据的文本文件,例如代码片段、配置信息或项目说明。为了获取具体信息,我们需要打开并阅读该文件内容。 2. **fileinfo.txt** - ...

    php数组实现根据某个键值将相同键值合并生成新二维数组的方法

    总结一下,这个PHP代码片段展示了如何根据特定键值(如'a')将二维数组进行分组和合并,生成新的二维数组。这种方法在处理和组织大量数据时非常有用,尤其在需要对数据进行分组统计或分析的场景。通过熟练掌握这种...

Global site tag (gtag.js) - Google Analytics