PHP 7.0.6 Released

strrev

(PHP 4, PHP 5, PHP 7)

strrevReverse a string

Description

string strrev ( string $string )

Returns string, reversed.

Parameters

string

The string to be reversed.

Return Values

Returns the reversed string.

Examples

Example #1 Reversing a string with strrev()

<?php
echo strrev("Hello world!"); // outputs "!dlrow olleH"
?>

User Contributed Notes

carmel.alex at gmail.com
10 years ago
This function support utf-8 encoding

function utf8_strrev($str){
    preg_match_all('/./us', $str, $ar);
    return join('',array_reverse($ar[0]));
}
vsrikanth02 at gmail dot com
2 years ago
$string = 'srikanth';
$length = strlen($string);

for($i=$length-1;$i >=0;$i--){
    echo $string[$i];
}
Anonymous
1 year ago
My version

<?php
$var
= "Hello, hello. ";

$length = strlen($var)-1;
$i = 0;
while (
$i < $length+1) {
    echo
$var[$length-$i];
   
$i++;
}
vsrikanth02 at gmail dot com
2 years ago
$string = 'srikanth';
$length = strlen($string);

for($i=$length-1;$i >=0;$i--){
    echo $string[$i];
}
dthawkins+php at gmail dot com
2 years ago
Reverse a string without using any functions

function reverse_string($s) {
        $i = 0;
        $rev = '';
        while ( $s[$i] ) {
                $i++;
        }
        $i--;
        while ( $s[$i] ) {
                $rev .= $s[$i];
                $i--;
        }
        return $rev;
}
MagicalTux at FF dot st
10 years ago
I will make Screend at hf dot webex dot com's comment more clear and understandable.

strrev only works for singlebyte character-sets. Multibytes charactersets are not compatibles with strrev.

US-ASCII and ISO-8859-* are compatible with strrev, however BIG5, SJIS, UTF-8 aren't.

There's no mb_strrev function in PHP, so you can't strrev() a multibyte string. Try to convert it to something else with iconv() if it can be represented in a singlebyte character set.
manfred at werkzeugH dot at
7 years ago
here is my version for strings with utf8-characters represented as numerical entities  (e.g. &#1234;)

function utf8_entities_strrev($str, $preserve_numbers = true)
{
  //split string into string-portions (1 byte characters, numerical entitiesor numbers)

  $parts=Array();
  while ($str)
  {
    if ($preserve_numbers && preg_match('/^([0-9]+)(.*)$/',$str,$m))
    {
      // number-flow
      $parts[]=$m[1];
      $str=$m[2];
    }
    elseif (preg_match('/^(\&#[0-9]+;)(.*)$/',$str,$m))
    {
      // numerical entity
      $parts[]=$m[1];
      $str=$m[2];
    }
    else
    {
      $parts[]=substr($str,0,1);
      $str=substr($str,1);
    }
  }

  $str=implode(array_reverse($parts),"");

  return $str;
}
sheik dot ks at gmail dot com
2 years ago
$str = "sheik";
$arr1 = str_split($str);
$revstr='';
$i=count($arr1);
while($i >= 0){
    $revstr .= $arr1[$i];
    $i--;
}
echo $revstr;
To Top