Php 在每个单词后添加字符
如何在每个单词后内爆字符 我尝试了以下方法:Php 在每个单词后添加字符,php,implode,Php,Implode,如何在每个单词后内爆字符 我尝试了以下方法: $query = implode("* ", preg_split("/[\s]+/", $query)); 但它总是忽略一个词。例如:test test将给我test*test,test将给我test,test test将给我test*test*test 还尝试了$query=内爆(“*”,str_split($query))但如果查询是西里尔文字符,它会让我胡言乱语。内爆会将字符串连接在一起,并在每个项目之间插入一个“粘合字符串” 如果要更改每
$query = implode("* ", preg_split("/[\s]+/", $query));
但它总是忽略一个词。例如:test test
将给我test*test
,test
将给我test
,test test将给我test*test*test
还尝试了
$query=内爆(“*”,str_split($query))
但如果查询是西里尔文字符,它会让我胡言乱语。内爆
会将字符串连接在一起,并在每个项目之间插入一个“粘合字符串”
如果要更改每个字符串,可以使用
我希望您没有使用数据库查询(考虑到您的变量名)做一些古怪的事情。如果要使用变量db查询,请改用参数化查询
另一个“黑客”是对数组进行内爆,然后在结果字符串的末尾插入缺少的字符串:
implode('* ', $array) . '* ';
试试这个
<?php
$str = 'test test test test test';
$str = implode("* ", explode(" ", $str))."* ";
echo $str;
尝试其他答案,也可以使用preg\u replace
。但不推荐。当有一些干净的替代品可用时,避免使用regex
<?php
$query = preg_replace( "/[\s]+/", "* ", $query )."*";
echo $query;
?>
将*
添加到$query
的末尾手动添加“*
”是否有问题?像内爆(“*”,preg_split(“/[\s]+/”,$query))。“*”代码>
<?php
$query = preg_replace( "/[\s]+/", "* ", $query )."*";
echo $query;
?>
<?php
$query = explode( " ", "test test test test test" );
$query = array_map( function( $val ) {
return trim( $val )."* ";
}, $query );
$query = implode( "", $query );
echo $query;
?>