使用字符串 - PHP

时间:2013-06-01 15:13:57

标签: php string

我需要一些PHP帮助字符串。

我有一个文本框字段,用户可以在其中输入Facebook个人资料链接。

示例:http://facebook.com/zuck

现在的问题是我需要完全使用这个字符串:" http://graph.facebook.com/zuck"。

输入可以是:

http://facebook.com/zuck

http://www.facebook.com/zuck

www.facebook.com/zuck

facebook.com/zuck

最好的方法是什么?提前谢谢。

6 个答案:

答案 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)

为什么不直接询问用户的用户名?不是接受各种各样的输入,而是设计表单,以便他们只需输入用户名。

有点像这样的东西;

enter image description here

这样,您甚至不必验证或存储除用户名以外的任何内容。当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)

有些事情:

模式:

(https?://)?(www\.)?(.+?)\/([^/]+)

替换为:

http://graph.$3/$4

在此测试:

http://www.regexe.com/