首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP查找并替换由输入文本以管道符号分隔的多个单词

PHP查找并替换由输入文本以管道符号分隔的多个单词
EN

Stack Overflow用户
提问于 2018-07-19 16:35:59
回答 1查看 39关注 0票数 1

我有输入文本来查找和替换由管道分隔的单词。

例如,我需要找到lorem和ipsum。

因此,我用管道分隔开来,并将lorem|ipsum放在$_POST['find']上,以被替换为{lorem}和{ipsum}。

弦乐:

lorem ipsum doler同坐。[医][美]依苏多莱兰游行

代码语言:javascript
复制
$find = $_POST['find']; //user want to search lorem|ipsum
$find = explode('|', $find); // to array
$replace = '{'.implode('|', $find).'}'; // i expect soething like array('{lorem}','{ipsum}');
$newString = str_replace($find, $replace, $string);

输出

{lorem\{lorem\ipsum}}{lorem\ipsum}Amet {lorem_ipsum} doleram paradem

我所期望的

代码语言:javascript
复制
{lorem} {ipsum} doler sit amet. Amet {ipsum} doleram paradem
EN

回答 1

Stack Overflow用户

发布于 2018-07-19 16:47:08

下面是我正在编写的另一种解决方案:

代码语言:javascript
复制
$input = 'lorem|ipsum';
$string = 'lorem ipsum doler sit amet. Amet ipsum doleram paradem';

// We get the words to replace
$find = explode('|', $input);

// We make sure the user didn't enter a word twice, (something like: lorem|lorem)
$find = array_unique($find);

// Prepare the replacement
$replace = array_map(function ($item) {
    return '{'.$item.'}';
}, $find);

// Finally do the replacement
$result = str_replace($find, $replace, $string);

echo $result; // {lorem} {ipsum} doler sit amet. Amet {ipsum} doleram paradem
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51427847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档