Oauth2返回的图像url打破imagecreatefromping



我使用的是oauth库中的hybridauth-3.7.1。https://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 HybridauthProviderReddit( $config );
$adapter->authenticate();
$userProfile = $adapter->getUserProfile();
$photo = $userProfile->photoURL;

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

现在如果我尝试:

imagecreatefrompng($photo);

my logs return:

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在回显中正确返回,但是从日志中可以看出imagecreatefroming添加了一个奇怪的&amp;

i have also tried

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与imagecreatefromping工作?

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

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

修改$userProfile->photoUrl,如下所示。

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

相关内容

  • 没有找到相关文章

最新更新