Php 图像URL重写

Php 图像URL重写,php,html,image,url,Php,Html,Image,Url,我已经编写了一个相当长的脚本image.php,但我只是复制了下面代码的一部分 请注意: $image = $_GET['ph']; $w = $_GET['w']; 以便: function getImage_w($image, $w){ $ext = strrchr($image, "."); if (strtolower($ext) == '.jpg' || strtolower($ext) == '.jpeg'){ header('Content-typ

我已经编写了一个相当长的脚本image.php,但我只是复制了下面代码的一部分

请注意:

$image = $_GET['ph'];
$w = $_GET['w'];
以便:

function getImage_w($image, $w){
    $ext = strrchr($image, ".");
    if (strtolower($ext) == '.jpg' || strtolower($ext) == '.jpeg'){
        header('Content-type: image/jpeg');

        $src_im_jpg = imagecreatefromjpeg($image);
        $size = getimagesize($image);

        $src_w = $size[0];
        $src_h = $size[1];
        $dst_w = $w;
        $dst_h = round(($dst_w/$src_w)*$src_h);
        $dst_im = imagecreatetruecolor($dst_w,$dst_h);

        imagecopyresampled($dst_im,$src_im_jpg,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);

        imagejpeg($dst_im);
    }
}
此脚本采用两个GET变量,
$\u GET['ph']
$\u GET['w']
ph
定义图像的URL,而
w
定义目标大小调整宽度

例如:如果我的脚本位于
libs/
目录中,而我的照片位于
resources
目录中,并且我希望以
width=100
显示我的照片,我必须使用以下html:

<img src="libs/image.php?ph=../resources/myimage.jpg&w=100">

我的问题是,我的图像在浏览器中显示正确,但url格式不正确。我想把images
alt
属性而不是这个url放在images属性中

并自动为图像请求应用
image.php

另外,当用户希望将图像保存在桌面上时,我遇到了一个问题,该图像保存在名称
image.php
下,这是不可取的

先谢谢你

RewriteEngine on
#change 'resize' to the folder your image.php is in
RewriteBase /resize

#e.g. /resize/path/to/image/sample-200.jpg
# will become /resize/image.php?ph=path/to/image/sample.jpg&w=200
RewriteRule ^(.*)-([0-9]+)(\.jpg)$ image.php?ph=$1$3&w=$2 [L,NC]
请注意,您不能使用。。在url中,因此使用根相对url。为此,您需要在php文件的路径中添加文档根目录:

$image = $_SERVER['DOCUMENT_ROOT'] . "/" . str_replace('..','', $_GET['ph']);
保存图像的用户将获得正常的图像名称,但末尾添加了“-”和大小

我不确定你想用alt做什么。我也不认为重写所有的图像是明智的,所以这个脚本只重写以/resize/开头的图像


www.example.com/hosting.jpg是不可能的,因为php不知道在哪个文件夹中查找此图像,以及调整其大小。

我不理解您的问题。。。您希望图像文件的src是另一个URL吗?你能举个例子吗?请格式化你的代码以便于阅读<代码>:)@BrianGlaz-我相信OP是在美化他的图像URL,以删除获取字符串部分。@JaredFarrish好的,我现在知道了。西莫。。。您熟悉.htaccess和mod rewrite吗?这应该可以帮助你做你想做的事情。我希望你已经有了一些安全措施,以防止有人下载他们不应该下载的内容(包括服务器文件和脚本)
:)
谢谢@Gerben,我真的会尝试这个解决方案,再次感谢:-)+1,现在它工作得很好,谢谢这么多朋友+最好的答案