【问题标题】:Split string with PHP Wordwrap in to two strings?使用 PHP Wordwrap 将字符串拆分为两个字符串?
【发布时间】:2015-05-24 18:26:50
【问题描述】:

有一个编写 XML 的函数,问题是值不能超过 30 个字符。在这种情况下,我需要拆分字符串值并保持可读性。

Wordwrap 可以解决这个问题,但我不认为这是正确的解决方案?

首先我需要确定是否需要这样做

    $name = 'My name is very long'

    // over 30 characters?
    if (strlen($name) < 30) {

        $this->xml->writeElement('Name', $name);
        $this->xml->writeElement('Name2', '');
}

如果超过 30 个字符,我想做类似的事情

   else {

      // Divide $name between Name & Name2 maintaining readability, like
      $newname = wordwrap($name, 30,........ 

       // If i could end up with something like this 
       $this->xml->writeElement('Name', $newname1);
       $this->xml->writeElement('Name2', $newname2);
}

我不确定哪种方法和解决方案是最好的,一直在挖掘,感觉我发现的所有方法都不适合我的代码。

【问题讨论】:

    标签: php xml-parsing query-string


    【解决方案1】:

    这应该适合你:

    您可以使用wordwrap() 结合explode() 创建一个数组,然后您可以简单地循环插入值到您的xml,例如

    <?php
    
        $name = "your string foo foo foo foo foo bar";
        $arr = explode(PHP_EOL, wordwrap($name, 30, PHP_EOL));
    
        foreach($arr as $k => $v) 
            $this->xml->writeElement("Name" . ($k == 0 ? "":$k+1), $v);
    
    ?>
    

    【讨论】:

    • 它会给我 Name1 和 Name2,我需要它是 Name 和 Name2 而不是 Name1
    • 这是正确的解决方案还是我应该使用的其他任何东西? if ($k xml->writeElement("Name," . $v); } else { $this->xml->writeElement("Name2," . $v); }
    猜你喜欢
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多