从php显示<img/>(问题)

时间:2011-07-05 19:58:54

标签: php

我想在<img>内返回一个链接。我不知道是什么问题。

categoria.php

<HTML>....
<img  src="categoriaMAIN.php?type=celular">
</HTML>

categoriaMAIN.php

<?php
$varcate= $_GET['type'];
if ($varcate == "celular")
   echo "http://ecx.images-amazon.com/images/I/41l1yyZuyXL._AA160_.jpg";
?>

6 个答案:

答案 0 :(得分:5)

<强> categoriaMAIN.php

<?php

  switch ($_GET['type'])
  {
    case 'celular':
      header('Location: http://ecx.images-amazon.com/images/I/41l1yyZuyXL._AA160_.jpg');
      break;
    case '...':
      header('Location: http://somesite.com/some/img/path/image.jpg');
      break;
    //...
  }

其他人似乎都提供readfile / grab并转发内容方法。我以为我会让HTTP协议为我们工作。

答案 1 :(得分:3)

嗯,img标签指的是文字,而不是图像。

尝试:

header("Content-Type: image/jpg"); //tell the browser that this is an image.
$varcate= $_GET['type']; // you know this part
if ($varcate == "celular")
{
   // readfile will grab the file and then output its contents without 
   // procressing it.
   readfile("http://ecx.images-amazon.com/images/I/41l1yyZuyXL._AA160_.jpg");
}

有点警告:如果你不在这里输出图像,那么浏览器可能会抱怨它试图加载的图像。您应该添加默认值。

修改

克里斯蒂安指出,这对服务器来说是很多工作,他是对的。如果你能够设法使img标签的src直接改变,那会好得多。但是,上述内容可以帮助您了解要求,但这可能不是最佳选择。

答案 2 :(得分:0)

img代码必须指向实际图片 - 而不是包含网址的网页。

<img src="categoriaMAIN.php?type=celular">

必须评估为

<img src="http://ecx.images-amazon.com/images/I/41l1yyZuyXL._AA160_.jpg">

现在不是。如何实现这一点,很大程度上取决于您的其他源代码以及您实际要完成的任务。

答案 3 :(得分:0)

这不起作用! <img src=""搜索图片文件,而不是其位置!试试这个:

categoria.php

<?php $varcate='celular'; ?>
<html>....
<img src="<?php include('categoriaMAIN.php'); ?>">
</html>

categoriaMAIN.php

<?php
if ($varcate == "celular")
   echo "http://ecx.images-amazon.com/images/I/41l1yyZuyXL._AA160_.jpg";
?>

答案 4 :(得分:0)

您将img PHP页面作为其src。因此浏览器期望PHP页面返回图像。相反,您正在使用该页面只返回图像的URL。您必须更改它,以便您实际上echo图像数据。这一切都有点生疏,但我认为你会做以下事情:

<?php
$varcate = $_GET['type'];
if ($varcate == 'celular') {
    header('Content-type: image/jpg');
    echo file_get_contents('http://ecx.images-amazon.com/images/I/41l1yyZuyXL._AA160_.jpg');
}
?>

答案 5 :(得分:0)

如果你真的想这样做,你的categoriaMAIN.php需要看起来更像:

<?php
$varcate = $_GET['type'];
if ($varcate == "celular") {
    header("Content-Type: image/jpeg");
    echo file_get_contents("http://ecx.images-amazon.com/images/I/41l1yyZuyXL._AA160_.jpg");
}
?>

这将获取实际的图像数据并将其作为图像返回到浏览器,这是浏览器所需的。