如何用php正则将长文本中的每个段落(以<br>结尾)替换为<div id="zt1">段落</div>
答案:1 悬赏:20 手机版
解决时间 2021-12-01 18:21
- 提问者网友:末路
- 2021-11-30 22:24
如何用php正则将长文本中的每个段落(以<br>结尾)替换为<div id="zt1">段落</div>
最佳答案
- 五星知识达人网友:空山清雨
- 2021-11-30 23:05
// 由于br标记在百度上不能显示 所以这个测试串的br你要去掉转义符号
$source = '。
?!
';
// 替换br
$code = 1;
$result = preg_replace_callback('/
/',function($m) use(&$code){ return '段落'; },$source);
print_r($result);
print_r("
");
// 替换句末
$code = 1;
$result = preg_replace_callback('/。|?|!/',function($m) use(&$code){ return '段落'; },$result);
print_r($result);追问你好,可能我没说清楚,是这样的:
将
aa。bb!
ccc?ddd。
替换为
aa。bb!ccc?ddd。追答$source = 'aaaaaaaaa
bbbbbbbbbbbbbbbbb
';
// 替换br
$result = preg_replace('/\
/','段落',$source);
print_r($result);
print_r("\n");
// 替换句末
$result = preg_replace('/。|?|!/','段落',$result);
print_r($result);追问不好意思,应该是:preg_replace('/\
/','',$source);吧?并且有个变量得到递增的id= zt.$i追答$source = 'aa。bb!
ccc?ddd。
';
$result = '';
preg_match_all('/.*?\
/',$source,$matches);
foreach($matches[0] as $idx=>$item){
$code = 1;
$item = preg_replace_callback('/.*?(?:!|?|。)/',function($m) use(&$code){ return ''.$m[0].''; },$item);
$item = preg_replace_callback('/(.*?)\
/',function($m) use(&$idx){ return ''.$m[1].''; },$item);
$result .= $item;
}
print_r($result);追问没有输出,
屏蔽foreach之后语句,再加上print_r($matches);
输出:
Array
(
[0] => Array
(
[0] => aa。bb!
[1] => ccc?ddd。
)
)追答
追问在循环中加了句 echo($item);也没有显示
$item = preg_replace_callback('/.*?(?:!|?|。)/',function($m) use(&$code){ return ''.$m[0].''; },$item);
echo($item); //这里没显示追答你用什么版本的php 我用的是5.4追问我用的是帝国CMS的一键安装包里的apche+php+mysql,已经下载了一个php5.4.21覆盖了原来的5.2.5,并重启apche,可phpinfo检测还是5.2.5追答无需apche
打开cmd
执行 "php.exe路径" -f "文件路径"
例如
g:\win8\Documents\php\php5.4.21\php -f g:\test.php追问方便私信或百度hi或QQ不?用CMD现在出提示是:
PHP Parse error: parse error, unexpected T_FUNCTION in D:\EmpireServer\web\dz\tt.php on line 10
第10句是 function($m) use(&$code){ ...
$source = '。
?!
';
// 替换br
$code = 1;
$result = preg_replace_callback('/
/',function($m) use(&$code){ return '段落'; },$source);
print_r($result);
print_r("
");
// 替换句末
$code = 1;
$result = preg_replace_callback('/。|?|!/',function($m) use(&$code){ return '段落'; },$result);
print_r($result);追问你好,可能我没说清楚,是这样的:
将
aa。bb!
ccc?ddd。
替换为
aa。bb!ccc?ddd。追答$source = 'aaaaaaaaa
bbbbbbbbbbbbbbbbb
';
// 替换br
$result = preg_replace('/\
/','段落',$source);
print_r($result);
print_r("\n");
// 替换句末
$result = preg_replace('/。|?|!/','段落',$result);
print_r($result);追问不好意思,应该是:preg_replace('/\
/','',$source);吧?并且有个变量得到递增的id= zt.$i追答$source = 'aa。bb!
ccc?ddd。
';
$result = '';
preg_match_all('/.*?\
/',$source,$matches);
foreach($matches[0] as $idx=>$item){
$code = 1;
$item = preg_replace_callback('/.*?(?:!|?|。)/',function($m) use(&$code){ return ''.$m[0].''; },$item);
$item = preg_replace_callback('/(.*?)\
/',function($m) use(&$idx){ return ''.$m[1].''; },$item);
$result .= $item;
}
print_r($result);追问没有输出,
屏蔽foreach之后语句,再加上print_r($matches);
输出:
Array
(
[0] => Array
(
[0] => aa。bb!
[1] => ccc?ddd。
)
)追答
追问在循环中加了句 echo($item);也没有显示
$item = preg_replace_callback('/.*?(?:!|?|。)/',function($m) use(&$code){ return ''.$m[0].''; },$item);
echo($item); //这里没显示追答你用什么版本的php 我用的是5.4追问我用的是帝国CMS的一键安装包里的apche+php+mysql,已经下载了一个php5.4.21覆盖了原来的5.2.5,并重启apche,可phpinfo检测还是5.2.5追答无需apche
打开cmd
执行 "php.exe路径" -f "文件路径"
例如
g:\win8\Documents\php\php5.4.21\php -f g:\test.php追问方便私信或百度hi或QQ不?用CMD现在出提示是:
PHP Parse error: parse error, unexpected T_FUNCTION in D:\EmpireServer\web\dz\tt.php on line 10
第10句是 function($m) use(&$code){ ...
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯