str_repeat

(PHP 4, PHP 5)

str_repeat -- Возвращает повторяющуюся строку

Описание

string str_repeat ( string input, int multiplier )

Возвращает строку input_str, повторенную multiplier раз. multiplier должен быть больше или равен нулю. Если он равен нулю, возвращается пустая строка.

Пример 1. Пример использования str_repeat()

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

Выводит "-=-=-=-=-=-=-=-=-=-=".

См. также for, str_pad() и substr_count().



str_repeat
15-Sep-2005 07:32
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
?>
21-Jul-2003 10:45
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.
abodeman at enoughspamalready dot yahoo dot com
27-May-2003 02:35
Recursive functions are almost always slower than the corresponding iterative function. Therefore, dmarsh's function will be faster than Gail's.
Gal Chen
18-Mar-2003 07:18
a response to dmarsh
if u do wanna write a function that fills a string to a length its best to use a recoursive function

function str_repeattolength ($str, $length) {
  $strlength= strlen($str);
  if ($strlength>= $length) {
   return substr($str,0,$length);
  } else {
   return $str . str_repeattolength($str, $length - $strlength);
  }
}

or just use str_pad
bob at bobarmadillo dot com
20-Nov-2002 04:26
While dmarsh's function is nice it duplicates the function str_pad().
str_repeat is good when you want the entire string repeated.
For instance, if you want to put 6 &nbsp;'s in somewhere, str_pad will cut it off at odd places whereas str_repeat will return 6 full &nbsp's.

the following will return the same result as dmarsh's code.

$t = "-=-";
print str_pad('',0,$t)."\n";
print str_pad('',1,$t)."\n";
print str_pad('',2,$t)."\n";
...etc.
dmarsh dot NO dot SPAM dot PLEASE at spscc dot ctc dot edu
17-Sep-2002 04:15
If you need an alternate str_repeat function that outputs an exact length using a particular input string to fill that length (as opposed to repeating the input string), try this little gem:

<?php

// use this function:
function str_repeat2($input, $length) {
// returns the output exactly $length using $input to fill that length
$answer="";

if (
$length>=1 && strlen($input)>=1) {
$answer = substr(str_repeat($inputceil($length/strlen($input)) ), 0, $length);
}

return
$answer;
}

//demo the function's use:
$t="-=-";
print
str_repeat2($t,0)."\n";
print
str_repeat2($t,1)."\n";
print
str_repeat2($t,2)."\n";
print
str_repeat2($t,3)."\n";
print
str_repeat2($t,4)."\n";
print
str_repeat2($t,5)."\n";
print
str_repeat2($t,6)."\n";
?>
dakota at dir dot bg
25-Jun-2002 03:06
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
25-Oct-2001 04:16
(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.

<str_padstr_replace>
 Last updated: Tue, 15 Nov 2005