php使用正则表达式获取字符串中的URL

yizhihongxing

下面是具体步骤和示例说明:

1. 利用PHP内置函数获取HTML字符串

在使用正则表达式前,我们需要先获取HTML字符串。可以使用PHP内置的函数,如file_get_contents或curl等。

$htmlStr = file_get_contents('http://www.example.com');

2. 构建正则表达式

构建正则表达式是本次攻略的重点,因为不同的网页结构有不同的标记和规则。

以下是一个基本的URL匹配正则表达式示例:

preg_match_all('/(http[s]?:\/\/[^\s]*)/i', $htmlStr, $match);

该正则表达式的含义是:匹配以http或https协议开头的URL。

3. 执行正则匹配

接下来,我们使用preg_match_all函数执行正则匹配。

preg_match_all('/(http[s]?:\/\/[^\s]*)/i', $htmlStr, $match);

函数的第一个参数是正则表达式,第二个参数是待匹配的文本,第三个参数是匹配结果数组。上述代码执行后,$match会返回一个二维数组,包含了所有匹配到的URL。

4. 获取匹配结果

我们可以使用foreach循环遍历$match数组,获取所有匹配到的URL。

foreach($match[0] as $url) {
    echo $url . "<br/>";
}

示例说明

以下是一个示例:使用php获取一篇博客的HTML字符串,然后提取其中的所有图片链接。

// 获取博客HTML字符串
$htmlStr = file_get_contents('https://www.example.com/blog/123');

// 构建匹配图片链接的正则表达式
preg_match_all('/<img.*?src="(.*?)".*?>/is', $htmlStr, $match);

// 遍历所有匹配结果,输出链接
foreach($match[1] as $imgUrl) {
    echo $imgUrl . "<br/>";
}

以下是另一个示例:使用php获取一个网站的HTML字符串,然后提取其中的所有外部链接。

// 获取网站HTML字符串
$htmlStr = file_get_contents('https://www.example.com');

// 构建匹配外部链接的正则表达式
preg_match_all('/(http[s]?:\/\/[^\s]*)/i', $htmlStr, $match);

// 遍历所有匹配结果,输出链接
foreach($match[0] as $url) {
    echo $url . "<br/>";
}

以上就是使用php正则表达式获取字符串中URL的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php使用正则表达式获取字符串中的URL - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • PHP利用一行代码删除目录下所有文件方法示例

    下面是讲解“PHP利用一行代码删除目录下所有文件方法示例”的完整攻略: 1. 了解unlink函数 在PHP中删除文件的方法一般是使用unlink()函数,这个函数可以从文件系统中删除文件,但是当尝试删除一个目录时,unlink()函数无法删除目录,只能删除文件。 那么如何删除目录呢?需要使用到其他函数和方法,比如使用rmdir()函数或者使用递归方式删除目…

    PHP 2023年5月26日
    00
  • 浅析php中array_map和array_walk的使用对比

    以下是“浅析PHP中array_map和array_walk的使用对比”的完整攻略。 概述 array_map 和 array_walk 都是 PHP 对数组进行处理的函数,它们分别有各自的优劣点,下面我们就来对它们进行详细的对比分析。 array_map 函数 语法 array_map (callable $callback, array …$arrs…

    PHP 2023年5月26日
    00
  • php中的常见攻击解读

    PHP作为一种常用的编程语言,广泛应用于web开发。然而,在使用PHP开发web应用时,常常会遭受到来自黑客的攻击,例如SQL注入、XSS攻击、CSRF攻击等。本文将会详细讲解PHP中的常见攻击解读,帮助大家提高web应用的安全性。 1. SQL注入 1.1 什么是SQL注入? SQL注入(SQL Injection),简单地说,就是利用web应用程序对用户…

    PHP 2023年5月24日
    00
  • PHP匹配连续的数字或字母的正则表达式

    要匹配连续的数字或字母,可以使用正则表达式中的元字符(metacharacter)来进行匹配。常用的元字符有.、*、+、?、|等,而用来匹配数字或字母的元字符有\d和\w。 使用\d+匹配连续的数字 \d用来匹配数字,\d+则表示匹配一个或多个数字(即连续的数字)。下面是一个例子,展示了如何使用\d+来匹配字符串中的连续数字: <?php $str =…

    PHP 2023年5月26日
    00
  • PHP中使用substr()截取字符串出现中文乱码问题该怎么办

    在PHP中,使用 substr() 函数截取字符串时,如果该字符串中包含了中文字符,常常会出现截取后出现中文乱码的问题。以下是一些解决中文乱码问题的方法: 方法一:使用mb_substr函数 mb_substr() 函数是一个多字节字符串截取函数,它可以正确地处理中文字符,因此在使用 substr() 函数截取中文字符串时,可以考虑使用 mb_substr(…

    PHP 2023年5月26日
    00
  • 学习php设计模式 php实现建造者模式

    PHP 设计模式是一种可重复使用的解决特定问题的代码设计方案,建造者模式是其中一种设计模式。下面是学习 PHP 设计模式建造者模式的攻略: 什么是建造者模式 建造者模式是一种创建型设计模式,将一个复杂对象的构建过程和它的表示分离开来,使同样的构建过程可以创建不同的表示。建造者模式通常涉及到一个抽象建造者类和具体的建造者类、指导者类和客户端类。 建造者模式的实…

    PHP 2023年5月27日
    00
  • php正则之函数 preg_replace()参数说明

    下面是关于 “php正则之函数 preg_replace()参数说明” 的详细讲解。 preg_replace()函数简介 preg_replace()函数是PHP正则表达式的替换函数,用于将字符串中匹配的内容替换为指定的内容。该函数支持正则表达式和字符串两种模式的搜索和替换操作。 preg_replace()函数参数说明 preg_replace()函数的…

    PHP 2023年5月26日
    00
  • PHP mb_convert_encoding 获取字符串编码类型实现代码

    标题:PHP mb_convert_encoding 获取字符串编码类型实现代码 一、介绍 在使用PHP开发项目中,我们经常面临一些需要处理中文编码的情况,比如读写数据库、文件等操作都需要注意编码问题。为了避免因编码问题引发的异常,我们常常需要获取字符串的编码类型,以便进行相应的处理。本文将介绍利用PHP mb_convert_encoding函数获取字符串…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部