将字符串换行直到给定的字符串 - PHP

时间:2014-02-21 10:54:04

标签: php

我有以下字符串:

  
      
  • 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)。

1 个答案:

答案 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);