【问题标题】:str_replace of html content with phpstr_replace 用 php 替换 html 内容
【发布时间】:2013-07-09 18:08:43
【问题描述】:

我有这个代码:

$str = 'di <a href="http://www.cadoinpiedi.it/author/redazione-la/#C" style="color:#006699; text-decoration:none;">VARIABLE NAME</a>'.
                '<br>'.
                '<strong>POST TITLE</strong>'.
                '<br>'.
                '<br>';
                $content=str_replace($str, "", $content);

有了它,我会像这样从 RSS 描述中删除此内容:

注意:$STR 由一个变量名和一个随每个项目变化的 POST TITLE 组成!

<img src="http://www.cadoinpiedi.it/img/fico-balo.JPG" width="280" height="94" align="left" style="margin-right:10px;" hspace="10" > 
<div style="margin-right:10px;" >
di <a href="http://www.cadoinpiedi.it/author/redazione-la/#C" style="color:#006699; text-decoration:none;">Redazione Cadoinpiedi.it</a>
<br>
<strong>La showgirl ha denunciato la coppia per diffamazione</strong>
<br>
<br>

Raffaella Fico ha querelato i coniugi Balotelli, che rischiano un processo per il reato di diffamazione aggravata, perché commessa a mezzo stampa. Sulla Gazzetta dello Sport del 27 dicembre scorso i Balotelli avevano scritto una lettera aperta alla modella. "Nostro figlio non è quell'essere irresponsabile e senza dignità che tu... <a href="http://www.cadoinpiedi.it/2013/07/11/raffaella_fico_porta_in_tribunale_i_genitori_di_balotelli.html" style="color:#006699; text-decoration:none;"> Leggi </a>

</div>

它不起作用......我做错了什么? 非常感谢。

【问题讨论】:

  • 一方面,您似乎使用加号“+”而不是句点“。”来连接字符串
  • 对不起,我已经编辑了...我必须删除 $content 中的 $str 之类的所有文本
  • @michele 当你取回内容时,你知道变量名和帖子标题吗?

标签: php html regex str-replace


【解决方案1】:

您的字符串连接不正确。当传递给函数时,它可能导致$str 等于0。使用. 进行连接。

$str = 'di <a href="http://www.cadoinpiedi.it/author/redazione-la/#C";'
     . 'style="color:#006699; text-decoration:none;">' . $VARNAME . '</a>' 
     . '<br>' 
     . '<strong>' . $POSTTITLE . '</strong>' 
     . '<br>' 
     . '<br>';

【讨论】:

  • 这不好,因为 VARIABLE NAME 改变了。它不是一个常数。
  • 对不起,我不明白你的意思。
  • 我已经编辑了我的问题...请阅读。感谢您的帮助
  • 我不知道 POST TITLE 和 VARNAME
【解决方案2】:
$endPos = stripos($content, "<br>");
                echo "<br><br><br>start:".$startPos."<br><br><br>end". $endPos." <br><br><br>";
                $content = substr($content, $endPos, strlen($content)-1);
                echo "<br><br><br>ecco: ".$content;

【讨论】:

    【解决方案3】:
    $content = substr($content,0,182).substr($content,448);
    

    它不能修复您的代码,这可能是您问题的评论中提到的+ 连接的问题,但是,它应该可以满足您的要求。

    更新以反映 OP 问题的变化:

    $startPos = stripos($content, "di &lt;");
    $endPos = strripos($content, "&lt;br&gt;", $startPos) + 10;
    $content = substr($content, 0, $startPos) . substr($content, $endPos);
    

    【讨论】:

    • 这不好,因为 VARIABLE NAME 改变了,而且它不一样了。
    • 我同意,但你最初的尝试同样死板,所以我认为这无关紧要。
    • 对不起,我的解释很糟糕
    • 我已经用一个适合你的解决方案更新了我的答案。
    • 它运行不正常。我必须从 di "<" 中删除到'<br>'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2016-01-11
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    相关资源
    最近更新 更多