首页
学习
活动
专区
圈层
工具
发布

使用PHP的正则抓取页面中的网址

最近有一个任务,从页面中抓取页面中所有的链接,当然使用PHP正则表达式是最方便的办法。要写出正则表达式,就要先总结出模式,那么页面中的链接会有几种形式呢?...服务器名称是告诉浏览器如何到达这个服务器的方式,通常是域名或者IP地址,有时还会包含端口号(默认为80)。FTP协议中,也可以包含用户名和密码,本文就不考虑了。...那么现在清楚了,要抓取的绝对链接的典型形式可以概括为  http://www.xxx.com/xxx/yyy/zzz.html 每个部分可以使用的字符范围有明确的规范,具体可以参考RFC1738。....]+)第三个括号内匹配的是相对路径。 写到这个时候,基本上大部分的网址都能匹配到了,但是对于URL中带有参数的还不能抓取,这样有可能造成再次访问的时候页面报错。关于参数RFC1738规范中要求是用?...这里仍然没有涵盖全部的情况,例如URL中有中文、有空格及其他特殊字符的情况,但是基本上能够满足我的需求了,就没有继续深化。 /(http|ftp|https):\/\/([\w\d\-_]+[\.

3.5K20

我的php命名规范

1.变量 所有字母都使用小写,使用'_'作为每个词的分界,如$user_name 2.函数 函数的命名使用小写字母和下划线的方式,如get_client_ip 3.方法 方法的命名使用驼峰法,并且首字母小写或者使用下划线...“_”,例如 getUserInfo,_formatAge,通常下划线开头的方法属于私有方法; 以双下划线“__”打头的函数或方法作为魔法方法,例如 __call 和 __autoload; 4.类名...类名使用驼峰法命名,并且首字母大写,另外类名和文件名保持一致 5.常量 常量以大写字母和下划线命名,例如 HAS_ONE和 MANY_TO_MANY; 配置参数以大写字母和下划线命名,例如HTML_CACHE_ON...6.属性名 属性的命名使用驼峰法,并且首字母小写或者使用下划线“_”,例如 tableUser、_instance,通常下划线开头的属性属于私有属性;

96880
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我在工作中是如何使用Git的

    本文首发于政采云前端团队博客:我在工作中是如何使用 Git 的 https://www.zoo.team/article/how-to-use-git image.png 前言 最近在网上有个真实发生的案例比较火...莫慌,按照下面我讲的四个步骤走,保证你可以顺利使用 Git 进行拉取代码! 下载 Git 下载地址 (https://git-scm.com/downloads) ,选择自己系统对应的版本下载即可。...git stash pop // 应用最近一次暂存的修改,并删除暂存的记录 git stash apply // 应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即 stash@{0}...总结 本文由浅入深的的讲解了 Git 的环境搭建,基本用法,以及工作中使用较为高频的 Git 命令的用法,无论你是前端后端还是其它端的开发,日常工作中少不了对 Git 的使用,我们不仅要会用,还要用的漂亮...这样才能在和同事协作项目的时候更加得心应手,学会了本文这些 Git 的使用技巧后,在日常工作中多多练习,相信会给你带来很大的收获!

    2.3K30

    我是如何迁移我的博客的

    若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。...写在开头 在今年初,我就打算迁移我的博客了,主要原因是ueditor编辑器不支持go代码的高亮,所以打算换,但是由于本人比较懒,同时事情又多,就耽搁了下来 此次迁移,跨度半年,实际消耗了3,4天左右,使用到了.../ ,基于java 的springboot开发 使用了又拍云 https://www.upyun.com/ 做cdn加速 使用了宝塔+supervisord 做java进程守护管理 使用了go做数据迁移....cn www.php20.cn; index index.php index.html index.htm default.php default.htm default.html;...root /www/wwwroot/newBlog; #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 #error_page 404/404.html;

    1.1K40

    我是如何使用Python来自动化我的婚礼的

    在婚礼中,有大量的名单、嵌套的名单、以及更多的远到目光可见的名单。当我瞪着越来越多的项目时,我开始怀疑,是否有更好的方法来处理?这一切都如此的手动,充满了低效。必须有一些技术可以改进的方面。...(发送给客人的邮件数,稍后它会派上用场) 主要数据输入完成后,我使用gspread来遍历列表,并且发送短信给每一个具有与之相关联的手机号码的客人:Sheets.py import json import...接下来,我使用Flask作为我的web服务器,然后设置我的Twilio消息请求URL指向/messages url,并创建简单的if语句来解析回复 (yes, no):hello_guest.py @app.route...初始群发短信2天后,我们收到了58%的客人的确认!尽管取得了明显的成功,但是我的未婚妻并不热衷于我那作为婚礼邀请服务(SAAWIS?)的短信,因此,我决定添加一些功能到我的应用中。 统计!...代码很简单,因为我已经在电子表格中设置了一些基本的计数器,因此,仅仅是抓取这些单元格的内容,并将其添加到短信中的事:hello_guest.py # attendance variables guest_confirmed

    3.4K80

    我所理解的 PHP Trait

    Trait 是从 PHP 5.4 加入的一种细粒度代码复用的语法。以下是官方手册对 Trait 的描述: Trait是为类似 PHP 的单继承语言而准备的一种代码复用机制。...Trait为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。...上面的这个例子中,“可卖性” 便是部分商品的一个特性,也可以理解为商品的一个归类。...这个用户模型类,我们引入了四个特性:注册与授权、软删除、数组式操作、可缓存。 我们看到代码的时候一眼便知道当前支持了哪些个特性。...这就是我理解的 Trait: 它不仅仅是可复用代码段的集合,它应该是一组描述了某个特性的的属性与方法的集合。它的优点再于随意组合,耦合性低,可读性高。

    89950

    我所理解的 PHP Trait

    Trait 是从 PHP 5.4 加入的一种细粒度代码复用的语法。以下是官方手册对 Trait 的描述: Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。...Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用 method。...那么,我们应该怎么样去拆分我们的代码才是合适的呢?我的看法是这样的: Trait,译作 “特性”、“特征”、“特点” 。那么问题就来了:什么才是特性?...你想说没有可读性是因为我基类的名称没起好?可是,这种各种特性组合的一个基类是根本无法起一个见名知义的名称的,不信你可以试一下。...这就是我理解的 Trait: 它不仅仅是可复用代码段的集合,它应该是一组描述了某个特性的的属性与方法的集合。它的优点在于随意组合,耦合性低,可读性高。

    47740

    我是如何还原NC中的美图的

    Fig2b,分为三部分: 上图为细胞系表达水平的箱线图。中间为热图,显示乳腺癌及其相关生物学过程中预测的抑癌基因和癌基因top50。基于欧氏距离矩阵进行层次聚类。下图是颜色标记不同注释信息。...红色(蓝色)标记Moonlight基因得分加(减)的生物过程。特定基因突变的样本数量从白色到深紫色不等。超甲基化DMR显示为蓝色,去甲基化黄色。KM生存预后差的基因标记为粉红色。...后来,我找到了这个神器——ComplexHeatmap。看这个R包的直译就知道啦,它是用来画复杂的热图。那到底有多复杂?小编带你一览庐山真面目。...,我的数据中基因为行,所以就加到右边了,但代码是一样的。...小编总结 ComplexHeatmap由顾祖光博士创建,是一个全面绘制复杂热图的R包,利用它你能绘制许多文献中的图片并学习到美图的精髓。像小编我这样的手残星人都能复制出来,你还没有信心么???

    1.4K30

    我是如何理解并使用maven的

    前言 一直想写一篇关于Maven的文章,但是不知如何下笔,如果说能使用,会使用Maven的话,一到两个小时足矣,不需要搞懂各种概念。那么给大家来分享下我是如何理解并使用maven的。...使用maven构建的项目,整个项目的体积小 maven项目不需要手动导入jar包,通过在pom.xml中添加依赖,引用依赖会自动从maven仓库下载jar包,方便快捷。...就是是由个人将常用到的jar包放入一个仓库中,已备自己在项目中使用,可从别人配置好的jar包仓库拷到自己本地目录,因为仓库一般很大,首次下载需要很长一段时间。... ---- 其中主要的标签含义如下: project:pom.xml 文件中的顶层元素; modelVersion:指明 POM 使用的对象模型的版本。...1、比如我想添加testng.jar包,那么可以通过访问网址 https://mvnrepository.com/ ,然后在搜索框中输入testng,回车 ?

    2K30

    我的世界如何TP坐标_我的世界设置坐标

    大家好,又见面了,我是你们的朋友全栈君。 我的世界游戏中,/tp 玩家id,开启了作弊模式与朋友联机时可以使用,作用是传送到该玩家身边。...单机的tp指令有: /tp 玩家id (开启了作弊模式与朋友联机时可以使用,作用是传送到该玩家身边)。 /tp 玩家id (将该玩家传送到x,y,z这个坐标处,需要有作弊模式权限)。...在命令方块中输入: /tp @a 坐标 (将全部玩家传送到该坐标,@a表示全部玩家,@p表示最近的玩家,@r表示随机玩家) /tp @e[type=生物的ID,name=你给生物取的名字] 坐标 服务器的...《我的世界》是一款3D的第一人称沙盘游戏,所呈现的世界并不是华丽的画面与特效,而是注重在游戏性上面。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    4.4K30

    我正在使用中的博客创作工具

    访问我的博客 www.fatbobman.com[1] 可以获得更好的阅读体验 从 2020 年 4 月开始,截至本月,我的博客【肘子的 Swift 记事本】已创建 2 年了。...这期间,使用过不少的工具以协助博客的创作。本文将对我正在使用中的应用工具(包含资料收集整理、文本编辑、截图及录屏、格式转换、图片编辑、图床管理等方面)做以介绍。...无论是做学习笔记还是知识整理,几年来,我在 OneNote 中记录、整理了不少的内容。...遗憾的是 macOS 版本无法使用 markdown 插件,因此我会以截图的方式记录代码片段(此种方式对空间的占用较大,幸好 OneDriver 提供了 1TB 的容量),并将保存完整的源代码文件以附件的形式添加在笔记中...不过由于缺乏定制能力,我几乎不会使用它的 Gif 动图录制功能。

    1.1K20

    如何使用RSS订阅我的博客文章更新

    用户使用RSS阅读器订阅:用户可以通过RSS阅读器软件(如Feedly、Inoreader等)输入这个RSS链接,从而订阅这个网站的更新。...二、RSS订阅源的获取 使用官方或者个人搭建的RSS服务,许多支持RSS订阅的网站会在显眼的位置(如网页底部、侧边栏或头部)放置一个RSS图标。点击这个图标通常会带你到RSS订阅链接页面。...比如我的博客的RSS地址在最下方: 介绍一个可以发现当前网页rss链接的浏览器插件,RSSHub Radar[1]: rss-radar 我这里介绍一些我常用的RSS源: ScienceDirect的论文...,访问你感兴趣的ScienceDirect期刊网站,使用刚刚提到的插件可以获取到rss链接。...: https://blog.renhai-lab.tech/ [11] 我的GITHUB: https://github.com/renhai-lab [12] 我的GITEE: https://gitee.com

    2.1K10

    【译】Activity分割动画如何使用我的动画##

    我的思路很简单: Activity A保存为bitmap 把bitmap分割成两个子bitmap 子bitmap传递至Activity B 在Activity B的布局之上显示两个子bitmap 使用动画向外移出两个子...对于低内存或者大屏幕的设备来说,可能是很大的开销。如果你依然选择使用,请小心,并且不要过度使用。...但是问题来了,受限于IPC的容量限制,子bitmap太大了以至于不能在Intent中传递,这是我得到的错误log: !!! FAILED BINDER TRANSACTION !!!...我使用硬件加速(了解更多有关硬件加速动画,请阅读我最新发布的blog)并且在动画结束或者取消后,做了一些清理操作(如,移除硬件图层,把Imageview从Window窗口移除等等) 如何使用我的动画##...我曾反复思考,在尽量不限制开发者的情况下,如何最简单便捷的使用它。

    1.8K20

    如何使用RSS订阅我的博客文章更新

    用户使用RSS阅读器订阅:用户可以通过RSS阅读器软件(如Feedly、Inoreader等)输入这个RSS链接,从而订阅这个网站的更新。...二、RSS订阅源的获取 使用官方或者个人搭建的RSS服务,许多支持RSS订阅的网站会在显眼的位置(如网页底部、侧边栏或头部)放置一个RSS图标。点击这个图标通常会带你到RSS订阅链接页面。...比如我的博客的RSS地址在最下方: 介绍一个可以发现当前网页rss链接的浏览器插件,RSSHub Radar[1]: rss-radar 我这里介绍一些我常用的RSS源: ScienceDirect的论文...,访问你感兴趣的ScienceDirect期刊网站,使用刚刚提到的插件可以获取到rss链接。...: https://blog.renhai-lab.tech/ [11] 我的GITHUB: https://github.com/renhai-lab [12] 我的GITEE: https://gitee.com

    1.1K10

    我攻克的技术难题: 我是如何解决开发中Chrome插件问题

    所以,我开始向ChatGPT提出我的需求 于是给出了以下这些对话 当我一步一步按照它给我的步骤来实现时。前面还是挺顺的。 首先是添加方式。直接在这里就能添加了 刚开始的时候。...看到有其他Chrome插件能直接导出导入数据,但是我在Chrome的extends里确实没看到文件。有大佬知道Chrome插件的数据保存在哪里的可以方便告知一下。...baidu.com 然后运行发现是能正常运行的 现在的问题就是如何利用快捷键来实现把Chrome的地址栏添加到文件夹里面了。...开发Chrome插件的经验较少,所以目前不太知道如何设定一个快捷键来实现这一功能 于是曲线救国,在这里 曾经分享过如何来利用alfred来实现对一些快捷操作来完成的。...最后把得到的地址栏通过一个脚本来写到一个文件里去,这里使用shell和python都行。 #!

    3.6K51

    我是如何使用 AI 来辅助自己写作的?

    给大家分享一下:我是如何用 AI 辅助写作的 标题平淡无奇、素材不够充实、遣词造句缺乏吸引力,这些问题是每个刚开始写作的人都会碰到的。...对于书中的专业术语,我们也可以让 AI 给出定义: 请解释文章中的**[专业术语]**: 给出通俗定义; 提供实际例子; 说明使用场景。...注意:AI 有时可能会虚构素材,所以我们仍需要使用搜索引擎核实关键数据,确保素材的真实性和可靠性。 第三,优化标题 标题决定了文章的首印象和点击率。一个好的标题不仅要吸引眼球,还要准确传达内容。...如果不确定如何提要求,也可以提供你觉得好的文章内容和标题,AI 会根据这些进行参考。 第四,生成封面图 写完文章后,很多人都会为配图而发愁。我们可以利用 AI 来帮助完成这一步骤。...我自己的操作流程是:让 Kimi 根据文章内容编写绘图模型提示语,然后交给豆包根据提示语生成图片。 不要局限于某个 AI 模型,要灵活运用不同 AI 的长处。

    50810

    历时25天,我的博客(www.ityouknow.com)终于又活了过来

    在中国绝大部分都使用百度搜索,因此就白白损失了一大部分流量,网上有很多的解决方案,比如部署两份根据域名解析选择走国内还是国外,或者直接使用 Coding.net 来托管博客,但 Coding.net 托管的博客总是有它自己三秒广告...开浏览器的调试页面跟踪了一下慢的原因,发现使用国内公共 CDN 的 js、css 需要一分钟甚至更长时间,继续跟踪发现只要是国内的资源加载起来都非常的慢。...过了几天北京这边又开一个更大的会,有几天的时间我的博客直接就不能访问了。看来只要北京开会,我的博客肯定就会出现不稳定的情况,原因就是因为我使用了国外的云主机。...没办法那段时间只能将域名解析关闭掉,同时将博客链接到:www.mooooc.com,在备案的期间,天天有网友给我留言、发邮件或者微信、QQ沟通说是不是我的博客挂掉了,每天给大家解释真的是心累。...另外如果你想了解如何去写博客,可以参考这篇文章:技术博客那些事儿。 END

    1.2K31
    领券