Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 调整<;的宽度/高度;img>;文本标记_Php_Jquery_Regex_Mobile_Jquery Mobile - Fatal编程技术网

Php 调整<;的宽度/高度;img>;文本标记

Php 调整<;的宽度/高度;img>;文本标记,php,jquery,regex,mobile,jquery-mobile,Php,Jquery,Regex,Mobile,Jquery Mobile,我有一块HTML,里面有图像。这些图像标记具有定义的宽度和高度: <img width="300" height="80" src="image.jpg" /> 我想浏览一下这个HTML,并将图像的宽度和高度替换为一个%值,而不是基于100%=600,同时删除高度属性。因此,例如,如果图像的定义宽度为300,则宽度将替换为50%: <img width="50%" src="image.jpg" /> 我对正则表达式的理解很垃圾,但我认为它将是答案。所以请帮忙

我有一块HTML,里面有图像。这些图像标记具有定义的宽度和高度:

<img width="300" height="80" src="image.jpg" />

我想浏览一下这个HTML,并将图像的宽度和高度替换为一个%值,而不是基于100%=600,同时删除高度属性。因此,例如,如果图像的定义宽度为300,则宽度将替换为50%:

<img width="50%" src="image.jpg" />

我对正则表达式的理解很垃圾,但我认为它将是答案。所以请帮忙

如果有人想知道,这是必要的格式博客文章HTML的东西,将显示在一个流畅的博客移动版本友好。目前,创建图像的实际大小副本不是可行的解决方案


我有jquery,如果有javascript方法解决这个问题,jquery mobile也可以使用。

经过测试,似乎可以工作:

$('img').each(
    function(){
        var w = $(this).attr('width').match(/\d+/);
        var percent = (w/600)*100;
        $(this).removeAttr('width').css('width',percent + '%');
    });​
.

尝试以下简单代码:

$('img').removeAttr('height').attr('width', function() {
    return Math.round((this.width * 100)/600) + '%'; 
});
或其他变体:

$('img').css('width', function() {
    return Math.round((this.width * 100)/600) + '%'; 
}).removeAttr('width height');

如果您不喜欢使用正则表达式,可以使用DOMDocument将HTML解析为对象。请参见此处:

我认为您不需要正则表达式。另外,如果设置
width=50%
,则它与图像所在的容器相关,而不是与实际图像大小相关。你必须使用绝对像素值。