How to replace text except when it#39;s between two tags in PHP?(如何替换文本,除非它在PHP中的两个标记之间?)
本文介绍了如何替换文本,除非它在PHP中的两个标记之间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个语句替换要在php中进行(使用str_replace
或其他方法)。我有这样一句话:
the sun is yellow when the <wrong>red sun is not yellow</wrong>
我想要这个:
the apple is yellow when the <wrong>red sun is not yellow</wrong>
所以我需要替换一个单词,除了两个特定标记之间(<wrong
和</wrong>
)。如何使用str_replace
或使用正则表达式执行此操作?
推荐答案
如果字符串很小,为什么不使用explode()
在标签处进行分解,
并替换所需片段中的字符串,然后重新连接它吗?
或尝试DomDocument:
<?php
$str = "the sun is yellow when the <wrong> This is also red sun not yellow red sun is not yellow some words </wrong> and here is
yellow sun outside <wrong> , now yellow sun inside </wrong>";
$origArr = array("sun");
$replaceArr = array("apple");
$str = str_replace($origArr,$replaceArr,$str);
$domElem = new DOMDocument();
$domElem->loadXML("<temp_tag>".$str."</temp_tag>");
$nodes = $domElem->getElementsByTagName('wrong');
$index = 0;
while($nodes->item($index)->nodeValue)
{
$nodes->item($index)->nodeValue = str_replace($replaceArr,$origArr,$nodes->item($index)->nodeValue);
$index++;
}
echo $domElem->saveHTML();
/* remove the <temp_tags> ....*/
?>
请在此处查看: http://codepad.org/T5o3shB4
这篇关于如何替换文本,除非它在PHP中的两个标记之间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何替换文本,除非它在PHP中的两个标记之间?
基础教程推荐
猜你喜欢
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01