php - 如何从文本中分离出特定的字符串(url 和后面的 10 个字符)并使用 PHP 将它们添加到数组中?
问题描述
如果我有以下文字:
Lorem ipsum dolor sit amet,https ://example.com/1aDb_sc-Xy consectetur adipiscing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat。Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat https://example.com/h3ab6--sc3 nulla pariatur。Exceptioneur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est labourum。
如何使用 PHP 从中提取 URL-s?我知道网址以https://example.com/开头,并且后面有超过 10 个字符。
我的目标是使用 PHP 提取一个看起来像这样的数组:
$array =
[
'https://example.com/1aDb_sc-Xy',
'https://example.com/h3ab6--sc3'
];
解决方案
您可以使用preg_match_all和正则表达式来搜索字符串https://example.com/
,然后搜索它之后的第一个空格:
<?php
$string = "Lorem ipsum dolor sit amet, https://example.com/1aDb_sc-Xy consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat https://example.com/h3ab6--sc3 nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
preg_match_all('!https:\/\/example\.com\/\S+!', $string, $matches);
var_dump($matches[0]);
// array(2) {
// [0]=> string(30) "https://example.com/1aDb_sc-Xy"
// [1]=> string(30) "https://example.com/h3ab6--sc3"
// }
编辑:
要完全匹配https://example.com/
,然后是接下来的 10 个字符:
preg_match_all('!https:\/\/example\.com\/(.{10})!', $string, $matches);
推荐阅读
- google-kubernetes-engine - 设置了 Cloud DNS 的 GKE
- html - Kindle 云阅读器文本提取
- python - 如何将字符串更改为 python 类型
- php - stream_socket_enable_crypto():SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:14090086:SSL 例程:ssl3_get_server_certificate:
- algorithm - 在标记元素列表中,如何有效地找到其标记包含我指定的所有标记的标记元素?
- appium - 在 AWS device-farm 上实施生物识别测试需要帮助
- reactjs - 测试 react 元素的子元素是否没有越过父轮廓
- javascript - 如何在 ReactJS 中按类别 id 过滤结果
- c - 如何让 MinGW GCC 识别 size_t 的 %zu 格式说明符?
- python - Keras Load Model.h5 在本地运行良好,但在部署到 heroku 时失败