可能重复:
在缺少时将 http:// 前缀添加到 URL
我正在使用这样的代码:
<?php echo $_GET['i']; ?>
myweb.com/sample.php?i=http://sample.com
但我想确保它总是有http://
以防万一myweb.com/sample.php?i=sample.com
如何使此代码<?php echo $_GET['i']; ?>
确保始终添加http://
以防万一?
可能重复:
在缺少时将 http:// 前缀添加到 URL
我正在使用这样的代码:
<?php echo $_GET['i']; ?>
myweb.com/sample.php?i=http://sample.com
但我想确保它总是有http://
以防万一myweb.com/sample.php?i=sample.com
如何使此代码<?php echo $_GET['i']; ?>
确保始终添加http://
以防万一?
<?php
if (strpos("http://", $_GET['i']) !== 0)
$_GET['i'] = "http://" . $_GET['i'];
?>
echo (strpos("http://", $_GET['i']) !== 0) ? "http://" . $_GET['i'] : $_GET['i'];
如果您要在查询字符串中动态生成上述 http url,请使用 php 中的 urlencode 或 rawurlencode 函数将查询字符串连接到您的 url,然后使用 http get ($_GET['i']) 接受请求。
希望对你有效。
使用 stristr() 函数。
$url = stristr($_GET['i'],'http://');
if($url != '')
然后字符串包含'http'。
您可以检查您的 $_GET['i'] 并仅接受 http:
例如:
'http://' 包含 7 个字符 + 最小的 url 'w.xx' 包含 4 个字符
因此,您的 $_GET[i] 的最小长度是 11 个字符
if(!empty($_GET['i']))
{
$len = strlen($_GET['i']);
if($len > 10 and substr($_GET['i'], 0, 7) === 'http://')
{
[... some of your code ?]
}
else if ($len > 3)
{
//force add http://
$_GET['i'] = 'http://'.$_GET['i'];
}
unset($len);
}
else
{
$_GET['i'] = 'No url?';
}
// <-- Place for your echo