-
ID:Le/zL3 さんの質問

はじめまして。

今、FACEBOOKの内容を
XML+PHPで取得し、自サイトに表示させる内容のものをやっているのですが

facebookに投稿されたらcronで定期的に見て、自サイトにもアップする。
一度XMLデータを整形し、データベースに格納。
データベースからそのまま回す

といった感じに今しております。

ただ、どうしても画像が表示されたり、されなかったりして困っています。

file_get_contentsをした後の
(string)$xml->channel->item->$i->descriptionの中に
画像も含めた本文データがあるようです。

ただし、その画像はデフォルトは小さい状態です。
facebookと同じように大きい写真で写真+記事と表示させたいのです。

URLを一部書き換えたりすると、大きな写真が取得できるものもありますが
具体的にはURLのうち !/v.*?0/! を抜くと大きいものは出るときは出る。

ただURLですが

scontent~から始まるものと
fbcdn-sphotos~からはじまるもの

サイズもs130x130の部分を書き換えると大きくなるもの、ならないもの
てんでバラバラで str_replace(preg_replace)をどのようにすればいいかで困っています。

中には一般サイトからの直リン?と思われるURLもありました。

また、シェアした投稿、編集済みになってしまった投稿は
画像などがうまく表示されない可能性が高い? と今の段階では踏んでおります。

このようにfacebookの内容を XML+PHPで
自サイトに表示させて運用されたことのある経験のある方、どのようにすればいいか、ご教示願いませんでしょうか?

当方でしたいことは

①画像が上(これはなんとかできています。)
②文章が下(これはなんとかできています。)

③画像は大きく表示(できるものと、そうでないものが混在)
④画像は代表1枚のみ表示(サムネイルで表示しない)
↑やり方があっているかは不明だが、一度配列に入れて $img[0]だけを呼び出すと、できているような気がする…

⑤画像のリンク切れを起こさない

⑤がどうしても無理なら、リンク切れしているデータに関しては
<img>をとっぱらう というのも考えています。

よろしくお願いします。

みんなの回答 2 件

ID:61ib4N さんの回答

つまり、俺らにタダで仕事をしろってことか?

ID:Le/zL3

このサイトは
Web制作のお悩みを解決するQ&Aとまとめサービス
ではないのでしょうか?

ID:Le/zL3

画像が大きく表示できる方法を知っている方がいらっしゃったら
ご教示頂きたいだけなのですが

ID:QnoYkV さんの回答

出るときはでる、出ないときはでない、リンク切れてたら削る、とまで頭の中でまとまってるんなら、全画像HTTPで読みに行ってステータス取得すればよろしいかと。

っていうか、聞きたいことってphpがどうとかって事じゃなくてFBの画像URLのサムネと原画のファイル名の法則を知りたいってことでしょ?

ID:Le/zL3

QnoYkVFtcqIm様 ありがとうございます。そうですね。PHPも苦手なのであまり詳しくはわかりませんけども、URLの法則がわかればなんとかreplaceすればいいだけなんだと思っております…

全画像HTTPで読みに行ってステータス取得すればよろしいかと。
>>これがどういう意味かわかりません><

またPHPで表示されない場合はリンク切れの場合は表示させないというのは組むことが出来るのでしょうか?

Javascriptを使ってゼロキロバイトなら、とか表示サイズがゼロなら、とかそういうのが必要でしょうか…><

PHP単体で削れる方法があればご教示頂きたいです;;
URLは外部リンクのものがあったり、いくらURLを書き換えてもダメだったので、リンクを削るのが早いかなとあきらめております;;;

ID:Le/zL3

get_headers($img_url); とかで出来るかやってみます!

ID:QnoYkV

たぶんそれで1項目にステータスが来るから200かどうかで存在確認できると思う。

最終更新日:2014-11-26 (2,586 views)

関連するトピックス

ページ上部に戻る