【问题标题】:fread, filesize usage with remote picturefread,文件大小使用远程图片
【发布时间】:2012-02-18 03:26:18
【问题描述】:

我正在编写一个脚本,该脚本从 Twitter API 获取图像,并在 base64 上返回它,但我遇到了麻烦,因为该文件位于远程服务器 (Twitter) 上。这里我展示代码,主要问题是fread()filesize()。我明白了:

Warning: filesize() [function.filesize]: stat failed for http://a0.twimg.com/profile_images/...jpg in...

<?
mysql_connect...;
mysql_select_db...;
$autho_name = ...;
include '../twitter/LibTwitter.php';
$sql = mysql_query("SELECT * FROM `users` ORDER BY id DESC");
while($result = mysql_fetch_array($sql)) {
$userid = $result["userid"];
$busqueda = $twitter->usersShow($userid);
$username = $busqueda["screen_name"];
$img_src = str_replace("_normal.", "_reasonably_small.", $busqueda["profile_image_url"]);
$imgbinary = fread(fopen($img_src, "r"), filesize($img_src));
$img_str = base64_encode($imgbinary);
echo '<img src="data:image/jpg;base64,'.$img_str.'" />';
}
?>

出于显而易见的原因,我用 ... 替换了个人数据,这没有问题。谢谢!

【问题讨论】:

    标签: php mysql twitter filesize fread


    【解决方案1】:

    只要使用file_get_contents()来获取图片,那么就很简单了:

    $img = file_get_contents('http://a0.twimg...etc....');
    $size = strlen($img);
    $base64 = base64_encode($img);
    

    【讨论】:

      猜你喜欢
      • 2016-04-15
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      相关资源
      最近更新 更多