【发布时间】:2020-06-16 02:45:44
【问题描述】:
我尝试了以下代码以仅从字符串中获取第一个 url。但它不起作用。
print_r($matches[0]); 显示数组结果。但是echo $matches[0]; 什么也没显示,这里出了什么问题?
我只想显示“https://www.amazon.in/b?node=21021782031&pf_rd_r=Z8266H8XJMQGEZMB0X44&pf_rd_p=00f7186e-02c5-40c7-9f15-9f2d65d70297”并删除所有其他文本和链接。
<?php
$string = "Samsung Galaxy S20 (Black) https://www.amazon.in/b?node=21021782031&pf_rd_r=Z8266H8XJMQGEZMB0X44&pf_rd_p=00f7186e-02c5-40c7-9f15-9f2d65d70297 afdsfdsf d https://stackoverflow.com/questions/35433139/php-get-only-values-from-an-array and https://mail.google.com/mail/u/0/#inbox";
$regex = '#https?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#';
preg_match_all($regex, $string, $matches);
echo "<pre>";
print_r($matches[0]);
echo "</br>";
echo $matches[0];
?>
结果应该只输出来自$string 的第一个链接,如下所示
https://www.amazon.in/b?node=21021782031&pf_rd_r=Z8266H8XJMQGEZMB0X44&pf_rd_p=00f7186e-02c5-40c7-9f15-9f2d65d70297
【问题讨论】:
-
为什么要 echo 显示结果?还将您的 '' 更改为 ''
-
by echo 我只是在测试代码,目的是添加另一个更大的代码。
-
print_r 是否显示您想要的内容?
-
但它显示了所有的 URL,我只想获取第一个 URL。
-
你能写一个正确有效输出的例子吗?