繁体   English   中英

将px添加到顶部和左侧属性

[英]Adding px to top and left attibute

所以我得到了这个程序,它给了我一堆带有内联样式的html输出。

它通常看起来像这样:

<DIV style="position:absolute;top:126;left:324"><nobr><span class="ft010"><b>2011</b></span></nobr></DIV>
<DIV style="position:absolute;top:126;left:386"><nobr><span class="ft010"><b>2010</b></span></nobr></DIV>

现在我知道这是一个烂摊子,但这是我得到的,改变它现在不是一个选择。 我需要做的是在顶部和高度属性之后输入正则表达式输入px。 所以我想要的是这样的:

<DIV style="position:absolute;top:126px;left:324px"><nobr><span class="ft010"><b>2011</b></span></nobr></DIV>
<DIV style="position:absolute;top:126px;left:386px"><nobr><span class="ft010"><b>2010</b></span></nobr></DIV>

html输出为一个长字符串,所以我需要找到顶部和左边的所有出现,并在数值后添加px。 我一直在尝试很多不同的解决方案,但仍然无法做到正确。 如果有人可以帮我找到正确的正则表达式,我会很高兴。 我对那些东西太可怕了。

$html = preg_replace('%(top|left|right|bottom)(:[0-9]{1,4})(;|")%', '$1$2px$3', $html);

这应该搜索任何CSS位置关键字,后跟冒号,数字(1-4位长),以及双引号( " )或分号( ; )。

然后它会将所有这三个部分(括号内的部分)取出并在正确的位置用px将它们拼接在一起。

http://codepad.viper-7.com/UjYCV3

你试过这个吗?

$html=str_replace(';left:','px;left:',$html);
$html=str_replace('"><nobr>','px"><nobr>',$html);

我想你需要这样的东西:

$html=preg_replace('/(.+)(left|top|bottom|right):([\d]+)(.+)/i','$1$2:$3px;$4',$html);

我没有测试,但我认为正则表达式写得很好

比费比更合适的答案是这样的:

$html = preg_replace("/(?:left|top|right|bottom|width|height)\s*:\s*\d+/","$0px",$html);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM