DOMDocument在文件中搜索字符串并删除包含列表项的php


DOMDocument search for string in file and delete containing list item php

我正在创建幻灯片编辑器。我在"删除幻灯片"功能上遇到了麻烦。我基本上必须搜索包含图像路径的<li>的外部文件。这是我到目前为止得到的代码,但我不知道如何编写"在列表项中搜索图像路径"行(我目前有stristr)。以下是我的文件:

    <?php
    $image = $_GET['image'];
    $file = $_GET['file'];
    $path = '../../yardworks/content_pages/' . $file;
    $orImage = substr($image, 39);
    /* Create string of contents */
    $mydoc = new DOMDocument('1.0', 'UTF-8');
    $mydoc->loadHTMLFile($path);
    foreach ($mydoc->getElementsByTagName("img") as $listItems){
        $images = $listItems->getAttribute("src");
        if ((stristr($images, $image) !== FALSE) || (stristr($images, $orImage) !== FALSE)){
            foreach ($mydoc->getElementsByTagName("li") as $delete){
                if ($x == $y){
                    $mydoc->removeChild($delete);
                    $mydoc->saveHTMLFile($path);
                    $file = file_get_contents($path);
                    $file = str_replace("&lt;", "<", $file);
                    $file = str_replace("&gt;", ">", $file);
                    file_put_contents($path, $file);
                    ?>
                    <!-- Confirmation and redirect -->
                    <script>
                        window.alert("Slide has been deleted.");
                        window.location.replace("slideshows.php");
                    </script>
                    <noscript>
                        Slide has been saved.<br />
                        <a href="slideshows.php">&laquo; Return to Select a Slideshow</a><br />
                    </noscript>
                    <?php
                }
                else $y++;
            }
        }
        $x++;
    }
    ?>
    <script>
        window.alert("Slide was not found.");
        window.location.replace("slideshows.php");
    </script>
    <noscript>
        Slide has been saved.<br />
        <a href="slideshows.php">&laquo; Return to Select a Slideshow</a><br />
    </noscript>

我不知道,但也许<li>没有复制正确?这是我试图访问的文件:

   <center><h1>1 Car 1 Story Garages</h1></center>
<div id="gallery" class="content mceNonEditable">
    <div id="controls" class="controls mceNonEditable"></div>
    <div class="slideshow-container mceNonEditable">
        <div id="loading" class="loader mceNonEditable"></div>
        <div id="slideshow" class="slideshow mceNonEditable"></div>
    </div>
    <div id="caption" class="caption-container"></div>
</div>
<div id="thumbs" class="navigation">
<ul class="thumbs noscript" id="replace">
    <li>
        <a class="thumb" href="images/garages/1car1story1.png">
            <img src="images/garages/1car1story1.png" alt="1 Car 1 Story Garage 1" height="100px" width="130px" class="slideshow-img" />
        </a>
        <div class="caption">
            <div class="image-title">1 Car 1 Story Garage 1</div>
            <div class="image-desc">12x24 Vinyl A-Frame with optional cupola</div>
        </div>
    </li>
    <li>
        <a class="thumb" href="images/garages/1car1story2.png">
            <img src="images/garages/1car1story2.png" alt="1 Car 1 Story Garage 2" height="100px" width="130px" class="slideshow-img" />
        </a>
        <div class="caption">
            <div class="image-title">1 Car 1 Story Garage 2</div>
            <div class="image-desc">12x24 Duratemp A-Frame w/ optional Stockton glass</div>
        </div>
    </li>
    <li>
        <a class="thumb" href="images/garages/1car1story3.png">
            <img src="images/garages/1car1story3.png" alt="1 Car 1 Story Garage 3" height="100px" width="130px" class="slideshow-img" />
        </a>
        <div class="caption">
            <div class="image-title">1 Car 1 Story Garage 3</div>
            <div class="image-desc">12x24 Vinyl High Wall Dutch Barn</div>
        </div>
    </li>
    <li>
        <a class="thumb" href="images/garages/1car1story4.png">
            <img src="images/garages/1car1story4.png" alt="1 Car 1 Story Garage 4" height="100px" width="130px" class="slideshow-img" />
        </a>
        <div class="caption">
            <div class="image-title">1 Car 1 Story Garage 4</div>
            <div class="image-desc">14x24 Vinyl A-Frame with optional tin roof</div>
        </div>
    </li>
</ul>
</div>

我抓住了更具体的div id,并在removeChild命令中使用该变量。(x和y变量最初也设置为0)。