如何将内联css更改为自由属性

时间:2014-06-24 09:24:28

标签: php html css regex

我试图更改au生成的HTML代码exp:

<div class="intro editable" id="field_text">text <strong>text</strong> text <span style="text-decoration: underline;">text</span> <span style="color: #ff0000; font-size: 16px;">text </span></div>
<h2 id="field_subtitle" class="editable">sub-title</h2>
<ul>  
    <li id="bp1" class="editable"><span style="text-decoration: underline; color: #008000; font-size: 14px;">text text text </span></li> 
    <li id="bp2" class="editable"><ul><br />
            <li><span style="color: #008000;"><strong>text text text</strong></span></li><br />
            <li><span style="font-size: 18px; color: #ff0000;"><em>text text text</em> </span></li><br />
        </ul></li> 
    <li id="bp3" class="editable"><span style="text-decoration: underline; color: #00376f; font-size: 14px;">text text text text text text </span></li> 
</ul>

可以使用Adobe AIR读取的HTML:

    span = font 
    strong = <b>
    text-decoration:underlinded = <u> 

   <span style="font-size:; color:#;">Text</span>
==>
    <font color=""><font size="">Text</font></font>

我正在使用一些Regex代码,但仍然没有取得好成绩:

    $output = str_replace("<span", "<font", $output);
    $output = str_replace("span>", "font>", $output);
    $output = str_replace("<strong", "<b", $output);
    $output = str_replace("strong>", "b>", $output);
$output = preg_replace("/<font(.*)text-decoration: underline;([^>]*)>(.*)<\/font>/", '<font $1 $2><u>$3</u></font>', $output);      
$output = preg_replace("/<font(.*)font-size:\s(.*)px;([^>]*)>(.*)<\/font>/", '<font $1 $3 size="$2" >$4</font>', $output);
$output = preg_replace("/<font(.*)color:\s(.*);([^>]*)>(.*)<\/font>/", '<font $1 $3 color="$2" >$4</font>', $output);

任何帮助!谢谢:)

1 个答案:

答案 0 :(得分:0)

我是用正则表达式制作的!是的,我用正则表达式解析了HTML ...

  只有我和查克诺里斯可以做到这一点...

之后我使用DOMdocument清理了Html代码,然后编译然后添加一些丢失的结束标记

谢谢