1

そのため、どこにも何も見つからなかったので、PHP 用にこのスクリプトをここに書きました。これが行うことは、facebook のサムネイル画像コードを取得して表示することです。私の質問は、それらの画像を表示する前に実際に存在するかどうかをテストすることです。Facebook はデフォルトでクエスチョン マークの画像を使用するため、壊れたリンクをテストすることはできません。参照しているものが存在しない場合、Facebook から返された疑問符の画像を一意に識別するにはどうすればよいですか?

//define our test subject
$testvar = "[[490550790968952]][[490550800968951]][[490550807635617]]  
[[490550820968949]][[490550837635614]][[490550847635613]]  
[[490550857635612]][[490550867635611]][[490550877635610]]  
[[490550884302276]][[490550894302275]][[490550900968941]]  
[[490550914302273]][[490550924302272]][[490550937635604]]  
[[490550947635603]][[490550954302269]][[490550967635601]]";

//this one is a broken link and generates the question mark, remove this line to test the above code
$testvar = "[[171108522930776]]";

//convert new lines to <br>
$testvar = nl2br($testvar);

//replace all numbers with links
$numfilter = "/([0-9]){1,}/"; //match all number blocks without brackets
$testvar = preg_replace($numfilter, "<img src='https://graph.facebook.com/\\0/picture'>", $testvar);

//strip the brackets
$stripbrackets = array("[[","]]");
$testvar = str_replace($stripbrackets,"",$testvar);

//echo a div with the output, setting font-size:0 so the <br> tags don't create vertical spacing between new lines
echo "<div style='font-size:0px; line-height:0px;'>";
echo $testvar;
echo "</div>";

?>
4

1 に答える 1

1

is_silhouetteリダイレクトを取得しない場合、Facebook はフィールドを返します。この結果を見てみましょう: https://graph.facebook.com?fields=name,picture&ids=490550790968952,171108522930776

これを cURL を使用して PHP に取り込むと、json_decode()この結果が得られます。これをループして各 ID をテストし、Facebook の未定義の画像の 1 つであるかどうかを確認できます。

于 2013-01-24T12:27:15.523 に答える