2011-09-24 64 views
7

我想从我的HTML文件中删除这个字符串的所有出现:str_replace函数不工作

<span style="font-size: 12pt;">BLANK PAGE</span> 

我试过str_replace函数,以为这将是一个简单的解决方案,但它不工作:

$html = str_replace('<span style="font-size: 12pt;">BLANK PAGE</span>', '', $html); 

有什么建议吗?

更新:神秘解决!感谢大家让我知道这应该工作。原来这个问题与str_replace无关!我从firebug中获取了html字符串,没有意识到firebug会插入空格来“美化”html。这就是为什么str_replace无法找到这个确切的模式。 我希望删除这个问题,因为问题最终与str_replace无关。那可能吗?

+1

它确实有效(请参阅[这里](http://ideone.com/tayIU))。您可以发布[SSCCE](http://pscode.org/sscce.html)吗? – Howard

+0

我假设这个HTML然后被写回原始文件? –

+0

@Doug:是的,我正在将HTML写回原始文件。 – moondog

回答

13

str_replace()返回新的版本 - 你需要给它分配回变量(或一个新的变量):

$myhtml = str_replace('<span style="font-size: 12pt;">BLANK PAGE</span>', '', $myhtml); 
+0

对不起,我应该更清楚。是的,那是我的尝试。我现在将澄清原来的帖子。 – moondog

-2

使用str_replace函数,你不能代替HTML标签。它只取代确切的发生。如果要替换span文本“strip_tags”以删除所有标记并使用str_replace更改跨度文本。

+0

关于HTML标签的不准确性? –

4

它应该这样工作。你可能忘记把结果赋给你的变量了吗?

$myhtml = str_replace('<span style="font-size: 12pt;">BLANK PAGE</span>', '', $myhtml); 
0

我的问题是,我使用str_replace函数去替换特殊字符,如(A,E,I,O,U)和没有工作。我试图使用记事本++更改文件转换为utf8-没有BOM,将文件上传到服务器,它工作!