字符串函数
在线手册:中文  英文

str_repeat

(PHP 4, PHP 5)

str_repeat重复一个字符串

说明

string str_repeat ( string $input , int $multiplier )

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

参数

input

待操作的字符串。

multiplier

input 被重复的次数。

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

返回值

返回重复后的字符串。

范例

Example #1 str_repeat() 范例

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

以上例程会输出:

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

参见


字符串函数
在线手册:中文  英文

用户评论:

divinity76 at gmail dot com (2011-11-18 18:58:18)

no idea how many times i have written this.
function br($times=1,$definition="<br/>\n")
{
echo str_repeat($definition,$times);
}

Anonymous (2011-10-23 04:51:03)

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 ...

r3d dot w0rm at yahoo dot com (2010-02-22 00:52:40)

str_repeat() Function Integer Overflow
For more info see :
http://bugs.php.net/bug.php?id=51105

Damien Bezborodov (2009-04-28 00:45:19)

Here is a simple one liner to repeat a string multiple times with a separator:

<?php
implode
($separatorarray_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($separatorarray_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(0count($args), '?'));
print 
"\n";
?>

Example Output:
bar,bar,bar,bar,bar
?,?,?

claude dot pache at gmail dot com (2009-02-10 02:25:20)

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=='' str_repeat($input.$separator$multiplier-1).$input;
}
?>

Kees van Dieren (2009-01-16 01:26:55)

Needed a function to repeat a string with a separator.

<?php
/**
 * Repeats <tt>$string</tt> <tt>$multiplier</tt> times, separated with <tt>$sep</tt>.
 *
 * str_repeat_sep('?', ',', 3) ==> "?,?,?"
 * str_repeat_seap('..', '/', 3) ==> "../../.."
 *
 * @param string $string
 * @param string $sep
 * @param int $multiplier
 * @return string
 */
function str_repeat_sep($string$sep$multiplier) {
  
$ret "";
  for(
$i=0;$i<$multiplier;$i++) {
    if (
$i$ret.=$sep;
    
$ret.=$string;
  }
  return 
$ret;
}
?>

Alper Kaya (2007-06-30 03:09:15)

If you want to hide a part of your password, you can use this code. It's very simple and might be required in your user management panel.

<?php
$password 
"12345abcdef";
$visibleLength 4// 4 chars from the beginning

echo substr($password,0,4).str_repeat("*", (strlen($password)-$visibleLength));
?>

(2005-09-15 07:32:41)

In reply to what Roland Knall wrote:

It is much simpler to use printf() or sprintf() for leading zeros.

<?php
   printf
("%05d<br>\n",  1); // Will echo 00001
   
sprintf("%05d<br>\n",  1); // Will return 00001
?>

(2003-07-21 10:45:52)

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.

dakota at dir dot bg (2002-06-25 03:06:41)

Note that the first argument is parsed only once, so it's impossible to do things like this:
echo str_repeat(++$i, 10);
The example will produce 10 times the value of $i+1, and will not do a cycle from $i to $i+10.

bryantSPAMw at geocities dot SPAM dot com (2001-10-25 04:16:27)

(For the benefit of those searching the website:)
This is the equivalent of Perl's "x" (repetition) operator, for eg. str_repeat("blah", 8) in PHP does the same thing as "blah" x 8 in Perl.

易百教程