Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 替换不属于某个特定字符串的文本_Php_Regex_Preg Replace - Fatal编程技术网

Php 替换不属于某个特定字符串的文本

Php 替换不属于某个特定字符串的文本,php,regex,preg-replace,Php,Regex,Preg Replace,冒着标题不明确的风险,因为我无法用几句话更好地解释它,我将准确描述我试图实现的目标 假设我有一篇名为Ilha de Faro的文章,在它的描述中,我想用相应的链接替换从db中找到的所有相关文章名称 到目前为止没有什么特别的。但是如果相关文章是Faro、Praia等,并且文章描述中包含名称,我不希望其文字被替换,这样Ilha de Faro就不会转向Ilha de Faro 在关系替换发生之前,我想用一些特殊字符串(如$%&或其他任何字符串)替换所有出现的名称,然后将特殊字符串替换回项目名称。但我

冒着标题不明确的风险,因为我无法用几句话更好地解释它,我将准确描述我试图实现的目标

假设我有一篇名为Ilha de Faro的文章,在它的描述中,我想用相应的链接替换从db中找到的所有相关文章名称

到目前为止没有什么特别的。但是如果相关文章是Faro、Praia等,并且文章描述中包含名称,我不希望其文字被替换,这样Ilha de Faro就不会转向Ilha de Faro

在关系替换发生之前,我想用一些特殊字符串(如$%&或其他任何字符串)替换所有出现的名称,然后将特殊字符串替换回项目名称。但我想知道的是,是否有一种更直接、更干净的方法来做这件事,或者我的小变通方法是一种很好的方法

提前感谢所有的答案

编辑

我将更实际地看待这一点。我还没有尝试过任何东西,因为我还没有到那个阶段,我只是在提前思考。 因此,我有一个文章表,一篇文章可以有n篇相关文章。 具有以下条款:

标题:伊尔哈德法罗

描述:法罗群岛、东拉多地区、拉戈五大优雅城市。做拉多奥普斯托,帕尔莱斯特,菲卡巴拉,Por Onde Pasa Naviga CoureCo会议E E DeReIIO。前方地带是一个建筑工地,是自然保护区的中间地带。在维亚吉姆机场的圣·迪雷科·迪雷科·多机场,卡罗是一个政党,该政党的成员之一,没有任何形式的立法规定。巴可俱乐部是克鲁泽罗俱乐部的一个组成部分,该俱乐部位于加拿大人的住所,在福尔摩沙的拉古纳和伊尔哈斯,可以选择其他俱乐部

相关文章:法罗,Ria福尔摩沙

我想展示的是文章的描述以及文本中相关文章的链接,因此大致如下:

法罗王国、东拉多陆地联盟、拉戈优雅五重奏。做拉多奥普斯托,帕尔莱斯特,菲卡巴拉,Por Onde Pasa Naviga CoureCo会议E E DeReIIO。前方地带是一个建筑工地,是自然保护区的中间地带。在维亚吉姆机场的圣·迪雷科·迪雷科·多机场,卡罗是一个政党,该政党的成员之一,没有任何形式的立法规定。巴可俱乐部是克鲁泽罗俱乐部的一个组成部分,该俱乐部位于加拿大人的住所,在福尔摩沙的拉古纳和伊尔哈斯,可以选择其他俱乐部

请注意粗体的标题。。。它包含法罗,这是一篇相关文章的标题,但我不想没有伊尔哈·德法罗


我最初的想法是为模式创建一个相关文章标题数组,并为替换创建另一个带有标记标题的数组,但这将替换所有内容,即使相关文章标题包含在父文章标题中。

好吧,我尝试了我提出的解决方案,效果很好。如果有人知道更干净或正确的方法,欢迎提出建议

无论如何,对于任何有这个问题的人来说,我是如何做到的:

$descTemp = preg_replace('/'.$articleTitle.'/', '!-article_title-!', $description);
$descTemp2 = preg_replace($relatedArticleTitles, $relatedArticleLinks, $descTemp);
$finalDescription = preg_replace('/!-article_title-!/', $articleTitle, $descTemp2);

为什么不在数据库中更新它呢?如果您不告诉我们您尝试了什么,那么即使是伪代码也很难给出。请给出一些示例输入字符串和预期结果。