2

文字列に関する 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

それを行う最善の方法は何ですか?前もって感謝します。

4

6 に答える 6

3

facebook.com/usernamewhere usernameis alphanumeric with dots, dashes, and underscoresの形式で何かを受け入れるには (Facebook が正確に何を許可しているかは不明):

if (preg_match('%facebook.com/([a-z0-9._-]+)%i', $input, $m))
{
  echo 'http://graph.facebook.com/', $m[1], "\n";
}
于 2013-06-01T15:27:13.550 に答える
2

ユーザーにユーザー名を尋ねてみませんか? 多種多様な入力を受け入れる代わりに、ユーザー名だけを入力すればよいようにフォームを設計します。

これに沿った何か。

ここに画像の説明を入力

このように、ユーザー名以外のものを検証または保存する必要さえありません。これは、Facebook が急速に動き、ユーザーの URL のようなものを破壊したときに、非常に役立つ可能性があります。または、グラフ API 以外の URL を作成する場合は、既存の URL を引き離す必要はありません。

于 2013-06-01T15:23:10.437 に答える
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
于 2013-06-01T15:20:33.897 に答える
0

次のようなもの:

パターン:

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

と置換する:

http://graph.$3/$4

ここでテストします:

http://www.regexe.com/

于 2013-06-01T15:36:13.970 に答える
0

入力の最後のスラッシュを見つける

$lastpos =  strrchr ( $input , '/' )

URL と最後のスラッシュの後のすべてを手動で連結します。

$new_url = 'http://www.facebook.com' . substr($input, $lastpos);
于 2013-06-01T15:22:42.903 に答える
0
$url = 'http://facebook.com/zuck';
$array = explode('/', str_replace('http://', '', $url));
$username = $array[1];
$finalurl = 'http://graph.facebook.com/zuck'.$username;

echo $finalurl;

これは、どの形式の入力 URL でも機能します。

于 2013-06-01T15:24:40.833 に答える