• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • str_repeat()

    (PHP 4, PHP 5, PHP 7)

    重复一个字符串

    说明

    str_repeat(string $input, int $multiplier) : string

    返回$input重复$multiplier次后的结果。

    参数

    $input

    待操作的字符串。

    $multiplier

    $input被重复的次数。

    $multiplier必须大于等于 0。如果$multiplier被设置为 0,函数返回空字符串。

    返回值

    返回重复后的字符串。

    范例

    Example #1str_repeat()范例

    <?php
    echo str_repeat("-=", 10);
    ?>

    以上例程会输出:

    -=-=-=-=-=-=-=-=-=-=
    

    参见

    Here is a simple one liner to repeat a string multiple times with a separator:
    <?php
    implode($separator, array_fill(0, $multiplier, $input));
    ?>
    Example script:
    <?php
    // How I like to repeat a string using standard PHP functions
    $input = 'bar';
    $multiplier = 5;
    $separator = ',';
    print implode($separator, array_fill(0, $multiplier, $input));
    print "\n";
    // Say, this comes in handy with count() on an array that we want to use in an
    // SQL query such as 'WHERE foo IN (...)'
    $args = array('1', '2', '3');
    print implode(',', array_fill(0, count($args), '?'));
    print "\n";
    ?>
    Example Output:
    bar,bar,bar,bar,bar
    ?,?,?
    http://php.net/manual/en/function.str-repeat.php#90555
    Damien Bezborodov , yeah but execution time of your solution is 3-5 times worse than str_replace.
    <?php
    function spam($number) {
      return str_repeat('test', $number);
    }
    function spam2($number) {
      return implode('', array_fill(0, $number, 'test'));
    }
    //echo spam(4);
    $before = microtime(true);
    for ($i = 0; $i < 100000; $i++) {
      spam(10);
    }
    echo microtime(true) - $before , "\n"; // 0.010297
    $before = microtime(true);
    for ($i = 0; $i < 100000; $i++) {
      spam2(10);
    }
    echo microtime(true) - $before; // 0.032104
    hi guys , 
    i've faced this example :
    <?php
    $my_head = str_repeat("°~", 35);
    echo $my_head;
    ?>
    so , the length should be 35x2 = 70 !!!
    if we echo it :
    <?php
    $my_head = str_repeat("°~", 35);
    echo strlen($my_head); // 105
    echo mb_strlen($my_head, 'UTF-8'); // 70
    ?>
    be carefull with characters and try to use mb_* package to make sure everything goes well ...
    str_repeat does not repeat symbol with code 0 on some (maybe all?) systems (tested on PHP Version 4.3.2 , FreeBSD 4.8-STABLE i386 ).
    Use <pre>
    while(strlen($str) < $desired) $str .= chr(0);
    </pre> to have string filled with zero-symbols.
    Here is a shorter version of Kees van Dieren's function below, which is moreover compatible with the syntax of str_repeat:
    <?php
    function str_repeat_extended($input, $multiplier, $separator='')
    {
      return $multiplier==0 ? '' : str_repeat($input.$separator, $multiplier-1).$input;
    }
    ?>

    上篇:str_pad()

    下篇:str_replace()