Как переставить HTML с помощью PHP или регулярных выражений? - PullRequest
0 голосов
/ 17 мая 2010

У меня разные выходы $slider['image']. Вот два примера:

Первый имеет <p> и </p> в начале и в конце. Во втором случае все теги <img> имеют теги <p> и </p>.

Один

<p>
    <span>Homepage</span><img src="../../assets/images/prints/print2_600x300.gif" alt="" width="600" height="300">
    <span>Content Page</span><img src="../../../assets/images/support_images/imageA_600x300.gif" alt="" width="600" height="300">
    <span>Dropdown Menu</span><img src="../../../assets/images/support_images/imageB_600x300.gif" alt="" width="600" height="300">
    <span>Comments List</span><img src="../../../assets/images/support_images/imageC_600x300.gif" alt="" width="600" height="300">
    <span>Comment Form</span><img src="../../../assets/images/support_images/imageD_600x300.gif" alt="" width="600" height="300">
</p>

Два

<p><span>Homepage</span></p>     
<p><img src="../../assets/images/prints/print2_600x300.gif" alt="" width="600" height="300"></p>
<p><span>Content Page</span></p>  
<p><img src="../../../assets/images/support_images/imageA_600x300.gif" alt="" 
width="600" height="300">
<p><span>Dropdown Menu</span></p>
<p><img src="../../../assets/images/support_images/imageB_600x300.gif" alt="" width="600" height="300"></p>
<p><span>Comments List</span></p>
<p><img src="../../../assets/images/support_images/imageC_600x300.gif" alt="" width="600" height="300"></p>
<p><span>Comment Form</span></p>
<p><img src="../../../assets/images/support_images/imageD_600x300.gif" alt="" width="600" height="300"

Мне нужно изменить это на следующее.

<li><span>Homepage</span><img alt="" src="assets/images/prints/print2_600x300.gif" /></li> 
<li><span>Content Page</span><img alt="" src="assets/images/support_images/imageA_600x300.gif" /></li> 
<li><span>Dropdown Menu</span><img alt="" src="assets/images/support_images/imageB_600x300.gif" /></li> 
<li><span>Comments List</span><img alt="" src="assets/images/support_images/imageC_600x300.gif" /></li> 
<li><span>Comment Form</span><img alt="" src="assets/images/support_images/imageD_600x300.gif" /></li>

Полагаю, для этого мне могут понадобиться регулярные выражения и PHP (explode, str_replace, foreach), но мне нужна помощь.

Полный вывод:

[0] =>; Array
    (
        [id] => 12
        [name] => Print 2
        [shortdesc] => <p>Print 2 short description</p>
        [longdesc] => <p>Print 2 long description</p>

        [thumbnail] => <p><img src="../../assets/images/prints/thumbnails/print2_223x112.gif" alt="" width="223" height="112"></p>
        [image] => <p><img src="../../assets/images/prints/print2_600x300.gif" alt="" width="600" height="300">Homepage<img src="../../../assets/images/support_images/imageA_600x300.gif" alt="" width="600" height="300">Content Page<img src="../../../assets/images/support_images/imageB_600x300.gif" alt="" width="600" height="300">Dropdown Menu<img src="../../../assets/images/support_images/imageC_600x300.gif" alt="" width="600" height="300">Comment List<img src="../../../assets/images/support_images/imageD_600x300.gif" alt="" width="600" height="300">Comment Form</p>
        [product_order] => 0
        [class] =>
        [grouping] =>
        [status] => active
        [category_id] => 5
        [featured] => front
        [other_feature] => none
        [price] => 0.00
    )

1 Ответ

1 голос
/ 17 мая 2010

Ожидайте очень простых задач, с регулярным выражением будет нелегко делать то, что вы хотите.

Вы можете использовать синтаксический анализатор XML, например SAX или DOM .

Вы также можете взглянуть на эти две библиотеки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...