我有一个 $urls
数组,其中包含一些图片或其他任何内容的 url:
$urls = array("http://shop.google.com/pic/android2014-1.jpg",
"http://shop.about.com/pic/buy2.gif",
"http://shop.ebay.com/pic/android2014-2.jpg",
"http://shop.somesite.com/pic/android2014-3.jpg",
"http://shop.wordpress.com/pic/android2014-6.jpg",
"http://shop.test.com/pic/android2014-4.jpg");
我需要我的输出是这样的:
$domains = array("shop.google.com",
"shop.about.com",
"shop.ebay.com",
"shop.somesite.com",
"shop.wordpress.com",
"shop.test.com");
我找到了类似 this example 的解决方案.它运行良好,但我想在我的 foreach
循环中使用正则表达式。我想我应该使用 preg_math
并且我阅读了 php.net 文档,但我不知道如何使用 regular expression
最佳答案
$domains=array();
foreach($urls as $url){
$domain = parse_url($url, PHP_URL_HOST);
array_push($domains,$domain);
}
您可以简单地print_r($domains);
来打印域名。
使用正则表达式
preg_match("/^(http:\/\/)?([^\/]+)/i", $url, $matches);
$domain = $matches[2];
关于php - 在 php 中使用正则表达式将 url 转换为域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21964687/