Php 在我的共享主机中调整图像大小、节省带宽和文件数量
我使用的是共享网络托管,它只为我选择的包提供有限的选项。我的帐户中只能有10000个文件和5 GB的带宽。此策略已实施,他们正在强制我清理文件,否则他们将阻止我的帐户,或者我需要升级我的帐户。当我注册时,他们给了我无限的文件数量和无限的带宽。我已经用了一年多了。我不想升级我的帐户,也不想在此时转移到其他主机 我的网站上有大约75000个图像文件,每月使用大约25GB的带宽。在这些75000个图像文件中,3750个是独特的图像。其余的都是相同的图像,大小不同。我的意思是我有一个19种不同大小的图像文件。每个文件都有一个唯一的名称。比如说, 其中一个唯一图像的文件名为ab171.pngPhp 在我的共享主机中调整图像大小、节省带宽和文件数量,php,shared-hosting,image-resizing,Php,Shared Hosting,Image Resizing,我使用的是共享网络托管,它只为我选择的包提供有限的选项。我的帐户中只能有10000个文件和5 GB的带宽。此策略已实施,他们正在强制我清理文件,否则他们将阻止我的帐户,或者我需要升级我的帐户。当我注册时,他们给了我无限的文件数量和无限的带宽。我已经用了一年多了。我不想升级我的帐户,也不想在此时转移到其他主机 我的网站上有大约75000个图像文件,每月使用大约25GB的带宽。在这些75000个图像文件中,3750个是独特的图像。其余的都是相同的图像,大小不同。我的意思是我有一个19种不同大小的图像
大小为800x600的同一图像的文件名为ab171_800_600.jpg
大小为640x480的同一图像的文件名为ab171_640_480.jpg
同样,我还有其他文件
因此,每个图像文件集有1个主文件和19个具有不同图像大小的其他文件 我的网站上的图像在大约20多个网站上使用。大约有10个被授权使用,其余的没有。我想阻止不在我的列表中的站点或警告它们不要使用我的带宽。如果我能实现下面的想法,我不会介意他们使用我的图片 现在,为了解决我的文件数量和带宽问题,我有了一个想法,我可以将主文件托管到一个图像托管站点,并使用timthumb脚本动态调整它的大小。(我有一个付费的图像托管帐户,我可以使用它。) 以下是我迄今为止所做的工作: a。我提取了确切的图像文件名(例如文件名:ab171_800_600) b。将旧文件名重定向到我的脚本,图像文件名作为参数(在上述步骤中提取)例如:
旧网址:myurl.com/images/thummbs/a/ab171_800_600.jpg
重定向为:myurl.com/thumbs.php?id=ab171_800_600
c。我编写了一个php脚本thumbs.php,它读取查询字符串id并提取图像id、图像宽度和图像高度。然后它检查数据库中的图像id以获取图像url(该url位于图像托管站点中) d。然后脚本重定向到timthumb.php,并将图像url(托管在图像托管站点中)、高度和宽度作为参数 到目前为止,上述脚本运行良好。如果我从浏览器中导航到我的旧url myurl.com/images/thummbs/a/ab171_800_600.jpg,它会从图像宿主中完美地获取图像,并调整其大小并在浏览器中显示 我的问题是,图像没有显示在我的/其他网站上,旧图像URL链接在图像标记内。例: 请帮助解决此问题。欢迎你的建议
谢谢您需要避免重定向 当您向回发送页面重定向时,浏览器会将整个页面重定向到HTTP标头中的位置 如果为图像发送回重定向,则无法执行此操作 您需要设计一个不依赖HTTP重定向的解决方案。我的建议通常是:
header("Content-type: image/jpeg\n\n");
$ch = curl_init ("http://....image.jpg"); // The URL you have already calculated in your question
curl_setopt($ch, CurlOPT_HEADER, 0);
curl_setopt($ch, CurlOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CurlOPT_BINARYTRANSFER,1);
$rawdata=curl_exec ($ch);
curl_close ($ch);
echo $rawdata;
唯一的解决办法是尽快离开那个骗子。 毫无疑问,他们增加了CPU使用限制以及如此荒谬的文件数量限制 你从所有的挣扎中得到的唯一结果是另一个极限突破。
唯一的解决办法是找到另一个主机,一个正常的主机
希望这能有所帮助。我建议根据您的网络主机的允许,使用file_get_contents()或curl来获取图像。也许改用GD库是个好主意。保留所有原始图像。当需要显示缩略图时,让php脚本为您生成缩略图。所以一个img标签可以是这样的:--GD库就是这样的。而且你不会被其他所有不同尺寸的额外文件所困扰。谢谢。但是,无法更改图像url。我无法控制大多数链接我的图片的网站。谢谢。但是,第一个选项不适合我,因为我无法编辑使用图像的每个位置。你能解释更多关于第二个选项的内容吗,因为我还是php的初学者。我添加了一个使用CURL.hmmm的示例。坦白地说,我现在没有钱升级或更换主机。我已经为这个主机支付了2年,还有1年。我希望能在这之前赚到钱,并尽快更换主机。但现在不可能。我没有从这些图片中获得任何东西。我在过去赚了很多钱,需要尽可能长时间地维护图片。以前我使用免费的图像托管,他们在一段时间后删除了我的图像。所以,我把这些图片放在自己的网站上。谢谢你没明白重点。这不是你自己的意愿。他们将阻止你的帐户的CPU过度使用,你将不得不找到另一个主机无论如何。+1-你的主机是在搞你。您可以获得无限带宽和磁盘空间的共享主机,每年约100美元