我有以下长字符串:
$long_text = "aaaaaaaaaaaaaaaaaaaaaaaa[BS][BS][BS][BS][BS][BS][BS][BS]aaaaaaaaaaaaaaaaaaaaaaaa[BS][BS][BS][BS][BS][BS][BS][BS]aaaaaaaaaaaaaaaaaaaaaaaa[BS][BS][BS][BS][BS][BS][BS][BS]aaaaaaaaaaaaaaaaaaaaaaaa[BS][BS][BS][BS][BS][BS][BS][BS]";
我想使用 [BS] 作为退格键。所以我有以下代码:
$long_text = preg_replace('/.(?R)*'[BS']/', '', $long_text);
但它不起作用,因为字符串太长。
有人可以帮助我并告诉我为什么 PHP 不能处理这么长的文本吗?有什么办法可以处理吗?(它适用于较短的文本)
不是你的问题的答案,但也许是你的问题的答案....
<?php
$s = "aaaaaaaaXbbbbbbbb[BS][BS][BS][BS][BS][BS][BS][BS]aaaaaaaaXbbbbbbbb[BS][BS][BS][BS][BS][BS][BS][BS]aaaaaaaaXbbbbbbbb[BS][BS][BS][BS][BS][BS][BS][BS]aaaaaaaaXbbbbbbbb[BS][BS][BS][BS][BS][BS][BS][BS]aaaaaaaa";
while ( false!==($pos=strpos($s, '[BS]')) ) {
$s = substr_replace($s, '', $pos-1, 5);
}
echo $s;
指纹
aaaaaaaaXaaaaaaaaXaaaaaaaaXaaaaaaaaXaaaaaaaa
(如预期)