编程语言
首页 > 编程语言> > php-Str_Replace问题

php-Str_Replace问题

作者:互联网

我是一个初学者程序员,制作了一个相当简单的scrape网站,并将信息秘密存储在mysql数据库中,以了解有关编程的更多信息.

这是我要抓取的代码:

<li id="liIngredient" data-ingredientid="3914" data-grams="907.2">
                <label>
                    <span class="checkbox-formatted"><input id="cbxIngredient" type="checkbox" name="ctl00$CenterColumnPlaceHolder$recipeTest$recipe$ingredients$rptIngredientsCol1$ctl01$cbxIngredient" /></span>
                    <p class="fl-ing" itemprop="ingredients">
                        <span id="lblIngAmount" class="ingredient-amount">2 pounds</span>
                        <span id="lblIngName" class="ingredient-name">ground beef chuck</span>

                    </p>
                </label>
            </li>

<li id="liIngredient" data-ingredientid="5838" data-grams="454">
                <label>
                    <span class="checkbox-formatted"><input id="cbxIngredient" type="checkbox" name="ctl00$CenterColumnPlaceHolder$recipeTest$recipe$ingredients$rptIngredientsCol1$ctl02$cbxIngredient" /></span>
                    <p class="fl-ing" itemprop="ingredients">
                        <span id="lblIngAmount" class="ingredient-amount">1 pound</span>
                        <span id="lblIngName" class="ingredient-name">bulk Italian sausage</span>

                    </p>
                </label>
            </li>

抓取数据后,我尝试使用str_replace除去2磅碎牛肉(或在第二个示例中1磅散装意大利香肠)以外的所有东西.

这是我的尝试:

$ingredients = str_replace('#<label>\s<span class="checkbox-formatted"><input id="cbxIngredient" type="checkbox" name=".*?" /></span>\s<p class="fl-ing" itemprop="ingredients">\s#', null, $ingredients);
              echo $ingredients;

从理论上讲,应该将所有内容都除去到span id = lblIngAmount部分.我要去哪里错了?在str_replace之前和之后,文本保持不变.怎么会?

感谢您提供的所有帮助!如果您需要更多详细信息,我们将很乐意为您提供!

解决方法:

不要使用正则表达式来解析HTML.

参见How to parse HTML.

正则表达式可以在这种特定情况下工作,但是由于这是一个学习项目,因此您想正确地做.

标签:str-replace,php,regex
来源: https://codeday.me/bug/20191031/1976034.html