我正在使用WordPress& amp; phpBB并且您必须知道图像路径是由这些CMS生成的。我想要的是............在发送到浏览器之前保持输出..............根据设备类型更改图像路径,最后输出正确的图像。
为什么我要替换路径?
因为我的NORMAL图像是180KB,我的MEDIUM图像是90KB而我的SMALL图像是30KB,并且像这样在每页上有大约20个图像,并想象我将通过用较小的图像替换它来减少页面速度的量和慢设备。此外,图像被裁剪以仅突出显示较小设备的重要部分,因此更改尺寸将无法解决我的问题。
我也不是在寻找CSS3媒体查询,因为我有一个不使用它们的具体原因。
什么对我有用?
由于我的首要任务是将页面加载时间保持在最低限度,因此最佳解决方案是使用一些 Regular-Expression ,因为我在模板中没有使用任何JavaScript库。
如果没有JavaScript就无法实现这一点,那么我宁愿使用普通的旧JavaScript方法而不使用任何库,因为这将是我模板中唯一的JavaScript函数,为它加载整个库没有任何意义。< / p>
以下是我应该采取的方法。但是我不知道如何得到它。请帮助。
请注意: - 我是PHP的新手,也是Regex和JavaScript的ZERO。因此,请详细解释一下。
<?php ob_start (); ?> /* Start Buffering */
<div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc pellentesque vestibulum fringilla. Nullam eget fermentum neque. Quisque ullamcorper fringilla quam, eu elementum nisl ornare vitae.</p>
<img src="images/desktop/pic1.jpg"/>
<img src="images/desktop/pic2.jpg"/>
<img src="images/desktop/pic3.jpg"/>
</div>
<?php ob_get_contents(); /* Get the Buffer */
if ($layout = 'mobile') {
/* replace <img src="images/desktop/pic1.jpg"/> with <img src="images/mobile/pic1.jpg"/>
/* replace <img src="images/desktop/pic2.jpg"/> with <img src="images/mobile/pic2.jpg"/>
/* replace <img src="images/desktop/pic3.jpg"/> with <img src="images/mobile/pic3.jpg"/>
The Folder-Name 'desktop' should be replaced by 'mobile'
*/
} else if ($layout = 'tablet') {
/* replace <img src="images/desktop/pic1.jpg"/> with <img src="images/tablet/pic1.jpg"/>
/* replace <img src="images/desktop/pic2.jpg"/> with <img src="images/tablet/pic2.jpg"/>
/* replace <img src="images/desktop/pic3.jpg"/> with <img src="images/tablet/pic3.jpg"/>
The Folder-Name 'desktop' should be replaced by 'tablet'
*/
}
ob_end_flush (); /* Send Output to the browser */
?>
$ layout的值由另一个PHP函数计算。
如果您认为这是一种更好的方法,请随意提出一个完全不同的解决方案。
答案 0 :(得分:0)
您希望将路径中的“桌面”替换为“移动”或“平板电脑”。你不需要正则表达式。
我 建议使用str_replace
,但后来我意识到你甚至不需要。
尝试使用此尺寸:
<?php ob_start (); ?> /* Start Buffering */
<div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc pellentesque vestibulum fringilla. Nullam eget fermentum neque. Quisque ullamcorper fringilla quam, eu elementum nisl ornare vitae.
</p>
<img src="images/<?=($layout !== 'desktop' ? $layout : 'desktop')?>/pic1.jpg"/>
<img src="images/<?=($layout !== 'desktop' ? $layout : 'desktop')?>/pic2.jpg"/>
<img src="images/<?=($layout !== 'desktop' ? $layout : 'desktop')?>/pic3.jpg"/>
</div>
?>
奇怪的是如果总是设置布局(通常是“桌面”,或“移动”或“平板电脑”),为什么你甚至需要更换网址是什么?您可以像这样动态构建URL:
<img src="images/<?=$layout?>/pic1.jpg"/>