html 输出:
<a href="/projects/dorabotka-internet-magazina-na-openkart-3-1310872.html" target="_blank" title="Название">
<span title="Поднят" data-toggle="tooltip">
<i class="fa fa-angle-double-up"></i>
</span>
Доработка интернет магазина на опенкарт 3 </a>
我不工作的 PHP 代码:
$terms = $doc_element->find('h2 a')->htmlOuter();
$terms = preg_filter('#<a href=\"(.)\".*$#is', "$1", $terms);
return $terms;
第 2 行中的正则表达式有问题。
我需要获取 url 的值,丢弃其他所有内容并将其放在 url 之前:https://example.com 以结束:https://example.com/projects/dorabotka-internet-magazina-na-openkart-3-1310872.html
答案 0 :(得分:0)
你可以使用
if (preg_match('#<a(?:\s+[^>]*?)?\s+href=["\']\K[^\'"]*#', $text, $match)) {
echo 'https://example.com' . $match[0];
}
参见regex demo。
详情:
<a
- <a
文本(?:\s+[^>]*?)?
- 一个可选的序列
\s+
- 一个或多个白点[^>]*?
- 除 >
之外的零个或多个字符尽可能少\s+
- 一个或多个空格href=["\']
- href=
然后是 "
或 '
\K
- 匹配重置运算符,丢弃目前匹配的所有文本[^\'"]*
- 除 '
和 "
之外的零个或多个字符。