2013-04-01 32 views
-3

我想用"guys"替换"hello"除了图像src和ALT与PHP(不区分大小写)。PHP替换文本除了图像替代

Hello hello HELLO <img src="hello.jpg" alt="hello" /> 

我想

Guys guys GUYS <img src="hello.jpg" alt="hello" /> 

guys guys guys <img src="hello.jpg" alt="hello" /> 

我试图与str_replacestr_ireplacepreg_replace但没有结果。

+0

而你的问题是? –

+0

如何做到这一点? – user2233781

+2

写一些代码将是一种方法。或者将文本/ html打印到一张纸上,然后使用whiteout删除不想要的文本。我们不在这里为你做你的工作。 **您**编写代码。如果它不起作用,那么你张贴该代码,并有人可能会试图帮助你。 –

回答

1

您想要使用“负面预测”。这是我对概念代码的证明。

<?php 
$string = "Hello, hello, HELLO hello.jpg"; 
print preg_replace("/hello(?!.jpg)/i", 'Guys', $string); 

打印

Guys, Guys, Guys hello.jpg 
+1

那么这并不能保留你的结果,但'(?!。jpg)'是重要部分。你应该可以从那里拿走它。 – jcbwlkr

+0

结果是伙计们伙计伙计Guys user2233781

+0

谢谢@ jacobwalker0814但alt属性不应该被替换 – user2233781

2

如果你既想打招呼同时匹配ALT以下=“和src =”你可以使用一个‘负回顾后发’为两个。例如:

$string = 'Hello hello HELLO <img src="hello.jpg" alt="hello" />'; 
preg_replace('/(?<!(src|alt)=")hello/i', 'guys', $string); 
+0

它的工作!谢谢! – user2233781

+0

almoust完美...但我的关键字有多个词,它不工作!这里是完整的“问题”http://stackoverflow.com/questions/15753137/php-replace-words-to-links-except-images – user2233781