2014-09-22 52 views
0

我想在php上创建一个图像标题页,其中我可以包含一些非ssl的url以具有完全ssl加密的网页,例如duckduckgo的此服务:如何使用php和html创建图像标题页

http://images.duckduckgo.com/iu/?u=http://4.bp.blogspot.com/-JOqxgp-ZWe0/U3BtyEQlEiI/AAAAAAAAOfg/Doq6Q2MwIKA/s1600/google-logo-874x288.png 

这时我网页显示我喜欢duckduckgo的形象,但如果我包括像从duckduck去架构(www.example.org/img.php?img= http://www.image.php/img.jpg)的URL。图像无法加载。我认为它的图像头问题。

我的代码:

<?php 
    session_start(); 
    $img = $_GET["img"]; 
    echo imagejpeg($img); 
?> 
<html> 
<head> 
<meta content="width=device-width; height=device-height;" name="viewport"> 
</head> 
<body> 
<img class="decoded" alt='<?php echo $img; ?>' src='<?php echo $img; ?>'> 
</body> 
</html> 

回答

0

你想通过你的服务器向客户端加载来自服务器的图像是什么。 你可以通过制作一个公共分隔的php文件来实现,例如image.php。

因此,使用HTML页面顶部的代码创建一个php文件image.php。你只必须在上面这段代码:

header('Content-Type: image/jpeg'); 

现在你可以这样调用它:http://your-domain.com/image.php?img=https://your-domain.com/images/your-image.jpg

+0

它返回一个像这样的错误:“图像(url)无法显示,因为它包含错误。” – R2D2 2014-09-22 16:16:36

+0

你必须为此使用imagecreatefromjpeg函数。 imagejpg函数不会加载url或文件,但会将jpg作为参数。请参阅:http://php.net/manual/en/function.imagejpeg.php – ArjanSchouten 2014-09-22 16:33:30

0

我觉得你首先需要创建图像,并且图像创建后,你叫imagejpeg ()函数。

$img = $_GET['img']; 
$generated_img = imagecreatefromjpeg($img); 
imagejpeg($generated_img); 

您可以将代码之外处理图像,并请参见该代码图像元素的src属性

<img src="img.php" /> 
0

阿尔扬正确说话。 但如果你希望在同一个文件中的php一定要退出。并且确保在标题函数调用之前没有任何回应......这包括在打开php标记之前的空格和新行。

<?php 
    session_start(); 
    if ($_GET["img"] != '') 
    { 
     $img = $_GET["img"]; 
     header('Content-Type: image/jpeg'); 
     echo imagejpeg($img); 
     exit(); 
    } 
?>