【问题标题】:Oauth2 returned image url breaks imagecreatefrompngOauth2 返回的图像 url 中断 imagecreatefrompng
【发布时间】:2021-10-25 18:39:55
【问题描述】:

我正在使用来自 oauth 库的 hybridauth-3.7.1https://github.com/hybridauth/hybridauth/releases

图书馆完美运行,所以我有以下内容:

<?php
  require_once 'hybridauth-3.7.1/vendor/autoload.php';
  $config = [
    'callback' => 'my_callback_url',
    'keys'     => [
      'id' => 'my_app_id',
      'secret' => 'my_secret'
    ],
  ];
  $adapter = new Hybridauth\Provider\Reddit( $config );
  $adapter->authenticate();
  $userProfile = $adapter->getUserProfile();
  $photo = $userProfile->photoURL;

如果我回显 $photo 我得到: https://styles.redditmedia.com/t5_55fo22/styles/profileIcon_bblqmk8klas71.png?width=256&height=256&crop=256:256,smart&s=30a3bb6af945eadeaddb40271d2c0161ca82768d

现在如果我尝试:

imagecreatefrompng($photo);

我的日志返回:

imagecreatefrompng( https://styles.redditmedia.com/t5_55fo22/styles/profileIcon_bblqmk8klas71.png?width=256&amp;amp;height=256&amp;amp;crop=256:256,smart&amp;amp;s=30a3bb6af945eadeaddb40271d2c0161ca82768d ): failed`

所以 url 在 echo 中正确返回,但从日志中可以看出 imagecreatefrompng 添加了一个奇怪的 &amp;

我也试过

imagecreatefrompng(urldecode($photo));

$decoded_photo = urldecode($photo);
imagecreatefrompng($decoded_photo);

两者都返回相同的上述错误日志。

但是,如果我在其中手动输入 url 就可以了。

imagecreatefrompng( 'https://styles.redditmedia.com/t5_55fo22/styles/profileIcon_bblqmk8klas71.png?width=256&height=256&crop=256:256,smart&s=30a3bb6af945eadeaddb40271d2c0161ca82768d' );

如何让返回的图片 url 与 imagecreatefrompng 一起使用?

【问题讨论】:

    标签: php imagecreatefrompng


    【解决方案1】:

    问题是当直接粘贴上一个示例中显示的 url 时,我没有意识到剪切和粘贴与实际来源不同。

    这意味着虽然我正在复制&amp;height=256...,但实际来源中的内容是&amp;amp;=256...,因此当尝试imagecreatefrompng() 时,它的编码已经编码&amp;amp;amp;,从而导致&amp;amp;amp;

    修复方法是更改​​$userProfile-&gt;photoUrl,如下所示。

    $photo = htmlspecialchars_decode($userProfile->photoURL);
    imagecreatefrompng($photo);
    

    【讨论】:

      猜你喜欢
      • 2012-09-25
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多