我有以下字符串:
- ST->地点
- ST-> site-> Room A-> Freezer 1
- ST-> something-> Room B-> Freezer 2-> JenLocation
- ST-> Building-> Room C-> Freezer 3-> Rack 1> Shelf
如果长度大于10,我需要包装字符串。如果是,我想将它从第11个字符包起来,直到最后一次出现“ - >” string.And在这个包装“~~”之间添加。所以输出应该是:
- ST->地点
- ST-> site ~~ - > Freezer 1
- ST->一些~~~ - > JenLocation
- ST-> BUIL ~~~ - >保质
我有从第11个caracher包装的代码。但我设法从最后包装只有给定数量的字符(在这个例子中,5)...直到最后一次出现“ - &gt;”。< / p>
这是我的代码:
if(strlen($string)>10){
$a = explode(PHP_EOL,wordwrap($string, 11, PHP_EOL, true), 2);
$b = explode(PHP_EOL, wordwrap(strrev($string), 5, PHP_EOL, true), 2);
$shortString= $a[0] . ' ~~~ ' . strrev($b[0]);
$arName[] = $shortString;
那么如何将字符串换行到->
的最后一次出现?或者,如果您使用我的代码,直到它的第一个特征($b
使用strrev
)。
答案 0 :(得分:0)
// find the last '->'
$pos = strrpos($string, '->');
// if found and is far enough, wrap the string
if ($pos !== FALSE && $pos > 15)
$result = substr($string, 0, 11).' ~~ '.substr($string, $pos);