我需要一些PHP帮助字符串。
我有一个文本框字段,用户可以在其中输入Facebook个人资料链接。
现在的问题是我需要完全使用这个字符串:" http://graph.facebook.com/zuck"。
输入可以是:
http://facebook.com/zuck
http://www.facebook.com/zuck
www.facebook.com/zuck
facebook.com/zuck
最好的方法是什么?提前谢谢。
答案 0 :(得分:3)
接受facebook.com/username
格式的任何内容,其中username
是带字母,短划线和下划线的字母数字(不确定Facebook允许的内容):
if (preg_match('%facebook.com/([a-z0-9._-]+)%i', $input, $m))
{
echo 'http://graph.facebook.com/', $m[1], "\n";
}
答案 1 :(得分:2)
为什么不直接询问用户的用户名?不是接受各种各样的输入,而是设计表单,以便他们只需输入用户名。
有点像这样的东西;
这样,您甚至不必验证或存储除用户名以外的任何内容。当Facebook快速移动并打破诸如用户的URL之类的内容时,这可能会非常有用。或者,如果您要为图谱API之外的其他内容构建网址,则无需拆分现有网址。
答案 2 :(得分:0)
如果给定的输入将始终与您给出的输入相同,我认为strstr
函数会使这个输入
$array = array('http://facebook.com/zuck', 'http://www.facebook.com/buck', 'www.facebook.com/luck', 'facebook.com/nuck');
foreach($array as $data)
{
if(strstr($data, 'facebook.com/'))
{
echo 'http://graph.'.strstr($data, 'facebook.com/') . '<br>';
}
}
这将输出
http://graph.facebook.com/zuck
http://graph.facebook.com/buck
http://graph.facebook.com/luck
http://graph.facebook.com/nuck
答案 3 :(得分:0)
在输入中找到最后一个斜杠
$lastpos = strrchr ( $input , '/' )
在最后一次斜杠之后手动连接url和所有内容。
$new_url = 'http://www.facebook.com' . substr($input, $lastpos);
答案 4 :(得分:0)
$url = 'http://facebook.com/zuck';
$array = explode('/', str_replace('http://', '', $url));
$username = $array[1];
$finalurl = 'http://graph.facebook.com/zuck'.$username;
echo $finalurl;
这适用于任何格式的输入网址。
答案 5 :(得分:0)