从https上的Dropbox在PHP中断开的图像

从https上的Dropbox在PHP中断开的图像,php,image,firefox,https,dropbox,Php,Image,Firefox,Https,Dropbox,我有一个奇怪的情况,PHP的工作方式与HTML不同。我不是一个网络程序员,只是胡闹。在HTML中,我的图像显示良好,在PHP中,图像被破坏。只有来自我的Dropbox https服务器的公共图像被破坏,而来自http服务器的图像可以工作 例如,这里是我的localhost上的两个文件,abc.html和def.php。他们试图显示两个图像,一个指向我的https图像,另一个指向谷歌徽标 abc.html: <img src='https://photos-1.dropbox.com/i/l

我有一个奇怪的情况,PHP的工作方式与HTML不同。我不是一个网络程序员,只是胡闹。在HTML中,我的图像显示良好,在PHP中,图像被破坏。只有来自我的Dropbox https服务器的公共图像被破坏,而来自http服务器的图像可以工作

例如,这里是我的localhost上的两个文件,abc.html和def.php。他们试图显示两个图像,一个指向我的https图像,另一个指向谷歌徽标

abc.html:

<img src='https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM'>
<img src='http://www.google.co.uk/intl/en_uk/images/logo.gif'>

def.php:

<?php
echo "<img src='https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM'>";
echo "<img src='http://www.google.co.uk/intl/en_uk/images/logo.gif'>";
exit;

这在我的Firefox 3.6版上运行,图像显示得非常好:

<HTML>
<HEAD>
<TITLE>My WebPage</TITLE>
</HEAD>
<BODY>

  <img src="https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM" />

</BODY>
</HTML>

我的网页

这适用于我的Firefox 3.6版,图像完美地显示:

<HTML>
<HEAD>
<TITLE>My WebPage</TITLE>
</HEAD>
<BODY>

  <img src="https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM" />

</BODY>
</HTML>

我的网页
我建议安装以查看服务器的返回响应是什么。您可能会发现DropBox拒绝为带有引用的图像请求提供服务,这些引用来自以特定扩展名结尾的文件,例如.php

这可能也解释了普通HTTP的重复行为。

我建议安装以查看服务器返回的响应是什么。您可能会发现DropBox拒绝为带有引用的图像请求提供服务,这些引用来自以特定扩展名结尾的文件,例如.php

这可能也解释了普通HTTP的重复行为。

尝试以下方法:

<?php
echo '<img src="https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM">';
echo '<img src="http://www.google.co.uk/intl/en_uk/images/logo.gif">';
exit;
试试这个:

<?php
echo '<img src="https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM">';
echo '<img src="http://www.google.co.uk/intl/en_uk/images/logo.gif">';
exit;

一个明显的观察结果,但是您的def.php是否有结束php标记?您的代码示例不

<?php
echo '<img src="https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM">';
echo '<img src="http://www.google.co.uk/intl/en_uk/images/logo.gif">';
exit;
?>


编辑:保存为html文件以上,我只看到一个图像在铬。。。另外-您是否安装了PHP模块/与web服务器关联?

一个明显的观察结果,但是您的def.PHP是否有结束PHP标记?您的代码示例不

<?php
echo '<img src="https://photos-1.dropbox.com/i/l/EyvpAUN99vGCmWKqw-ywSYXY1L8dPhkloKA5i9I--NM">';
echo '<img src="http://www.google.co.uk/intl/en_uk/images/logo.gif">';
exit;
?>



编辑:保存为html文件以上,我只看到一个图像在铬。。。另外-您是否安装了PHP模块并与web服务器关联?

尝试在两者中使用“查看源代码”并比较结果。

尝试在两者中使用“查看源代码”并比较结果。

这是PHP生成页面的源代码吗?我可以让它从一个普通的HTML页面而不是PHP生成的页面工作。这是PHP生成页面的源代码吗?我可以从一个普通的HTML页面,而不是从PHP生成的页面,让它工作。普通的HTML不适合我,所以不要认为这是PHP的问题。其他带有https src的图像也可以工作,所以我假设它是该图像(或其url)和服务器的某种组合。这是一个有趣的!我不认为https://有问题,你可以删除它,然后用http://更改它,你也会得到损坏的图像。这有点有趣,我会搜索这个错误def.php的输出是什么?@David Grant:我在问题的底部添加了输出。我尝试关闭防火墙,但没有任何区别。简单的html对我不起作用,所以不要认为这是php问题。其他带有https src的图像也可以工作,所以我假设它是该图像(或其url)和服务器的某种组合。这是一个有趣的!我不认为https://有问题,你可以删除它,然后用http://更改它,你也会得到损坏的图像。这有点滑稽,我会搜索这个错误def.php的输出是什么?@David Grant:我在问题的底部添加了输出。我尝试关闭防火墙,但没有任何区别。如果浏览器不原谅这个错误,为什么谷歌徽标会起作用?如果浏览器不原谅这个错误,为什么Google徽标可以工作?但是输出仍然有效。PHP已经被解释过了-请参阅输出。在PHP中,您不需要结束标记。事实上,如果您向PEAR提交了一些内容,那么如果您包含结束标记,您的贡献将被拒绝,因为这违反了PEAR编码标准:@R.Bemrose。不知道您不需要结束php标记!谢谢@大卫·格兰特。没错。但是,输出仍然有效。PHP已经被解释过了-请参阅输出。PHP中不需要结束标记。事实上,如果您向PEAR提交了一些内容,那么如果您包含结束标记,您的贡献将被拒绝,因为这违反了PEAR编码标准:@R.Bemrose。不知道您不需要结束php标记!谢谢@大卫·格兰特。你说得对。我安装了Firebug,该页面的命令行输出给出了以下错误:“NetworkError:404NotFound-”。我不知道如何破译响应标题来找出答案。也许你可以提供标题?根据Dropbox gallery插件的创建者的说法,“Dropbox不允许显示与Dropbox.com不同的HTTP_REFERER的照片”。我安装了Firebug,页面的命令行输出给出了这个错误:“NetworkError:404notfound-”。我不知道如何破译响应标题来找出答案。也许你可以提供标题?根据Dropbox gallery插件的创建者的说法,“Dropbox不允许显示与Dropbox.com不同的HTTP_REFERER的照片”。这证实了你的理论,所以你得到了分数。