【问题标题】:php echo only first 20 characters from a variable stringphp只回显变量字符串的前20个字符
【发布时间】:2017-04-28 21:48:27
【问题描述】:

我有一种情况,我必须在不同位置为多个变量回显一定长度。

我知道在 bash 中我们可以使用 echo ${variable:0:20} 来实现这一点,而无需重写或改进变量。

例如在 php 中我希望能够做到这一点。

$string1 = "I am looking for a way to only echo the first 20 characters from a string variable";
echo $string:0:20;

我知道像这样在 php 中重新定义我的变量并回显它非常简单。

$small = substr($big, 0, 20);
echo $small;

但是我必须在一些位置使用相同的变量,并且每个位置我必须回显不同的长度,所以使用上述方法是不可行的。我还缺少什么可以使用的东西吗?

【问题讨论】:

    标签: php string variables


    【解决方案1】:

    我知道在 bash 中我们可以使用 echo ${variable:0:20} 来实现这一点,而无需重写或改进变量。

    在 PHP 中,您也可以使用 echo substr($variable, 0, 20); 而无需重写或改进变量。

    为了方便(和容易修改,例如将... 添加到所有包装的字符串),您可以将其包装在一个小函数中:

    function shorten($string, $maxLength) {
        return substr($string, 0, $maxLength);
    }
    

    并将其用作

    echo shorten("Some very very very very very long string", 20);
    

    甚至在你的函数中包含echo

    function output($string, $maxLength) {
        echo substr($string, 0, $maxLength);
    }
    

    并将其用作

    output("Some very very very very very long string", 20);
    

    【讨论】:

      【解决方案2】:

      最简单的解决方案是构建一个function,这样您就可以节省一些代码行,除此之外我看不到您可以进行任何其他改进,例如:

      function small($string)
      {
          return substr($string, 0, 20);
      }
      

      将其用作:

      print small("Some sentence longer than 20 chars");
      

      【讨论】:

        【解决方案3】:

        除了可以回显来自substr 本身的返回值这一事实之外,您并没有遗漏任何东西。如果你想做得很短,比如如果从substr 中写入第二个参数太多,只需将其包装在一个新函数中即可。

        function
        ss($string, $size)
        {
            return substr($string, 0, $size);
        }
        
        echo ss('long ... string', 20);
        

        【讨论】:

          【解决方案4】:

          你可以使用这个echo substr($string, 0, $length);

          更多你可以使用这个:

          function output($string, $maxLen) {
              echo substr($string, 0, $maxLen); 
              if(strlen($string) > $maxLen) echo ' ...';
          }
          

          【讨论】:

            猜你喜欢
            • 2014-01-28
            • 1970-01-01
            • 2021-09-02
            • 2019-10-17
            • 2011-12-24
            • 1970-01-01
            • 2017-08-11
            • 2014-05-30
            • 2011-09-25
            相关资源
            最近更新 更多