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

时间:2013-06-08 18:32:43

标签: php slideshow domdocument removechild

我正在创建幻灯片编辑器。我在使用“删除幻灯片”功能时遇到问题。我基本上必须在外部文件中搜索包含图像路径的<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>

1 个答案:

答案 0 :(得分:1)

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