Hello Guys即时使用此功能可在缺少时将http://前缀添加到Url。问题是他将它添加到我已经http://已经在其他地方的其他地址。
foreach($result as $key => &$value)
{
if (strpos($sample['Internetadress'], 'http://') === false){
$sample['Internetadress'] = 'http://' .$sample['Internetadress'];
}
}
对不起我来自德国的英语:D
答案 0 :(得分:1)
你的代码应该覆盖你的第一点(当http存在时不改变URL),如果没有提供你想要修改的样本网址。
对于第二点,你只需再做一次检查:
<?php
$sample['Internetadress']='www.example.com';
if (strpos($sample['Internetadress'], 'http://') === false && trim($sample['Internetadress'])!==''){
if(strpos($sample['Internetadress'], 'https://') === false){
$sample['Internetadress'] = 'http://' .$sample['Internetadress'];
}
}
echo $sample['Internetadress'];
答案 1 :(得分:0)
我认为在这种情况下,一个小正则表达式是一个很好的解决方案:
$urls = [
'http://www.example.com',
'foo.bar.com',
'https://example.com',
'www.example.com'
];
foreach ($urls as &$url) {
$url = preg_replace('/^(?!http)/i', 'http://', $url);
}
循环后$urls
中的值为:
[
"http://www.example.com",
"http://foo.bar.com",
"https://example.com",
"http://www.example.com"
]
除了使用foreach循环并通过引用传递值之外,您还可以使用SQLiteStudio这样的代码:
$urls = array_map(function($url) {
return preg_replace('/^(?!http)/i', 'http://', $url);
}, $urls);