strrchr函数的反义词是什么?

I want to remove all characters after last specific string. For this function I need opposite of strrchr function.

For example, I want to remove all characters after last "." from "Hello.World.pdf". But with strrchr function I can only remove "Hello.World" before "."!

I want something like this code:

<?php
echo strrchr("Hello.World.pdf" , "." , true);
?>

But this code isn't working!

If you are dealing with file names that can have various extensions and you would like to remove the extension, you can get the extension using pathinfo() and then use str_replace() to get rid of it:

$filename  = 'Hello.World.pdf';
$extension = pathinfo($filename, PATHINFO_EXTENSION);
$filename  = str_replace('.' . $extension, '', $filename);
echo $filename; //Hello.World

More info on pathinfo and str_replace

Try the following:

echo substr('Hello.World.pdf', 0, strrpos('Hello.World.pdf', '.'));

Reading material:

http://php.net/manual/en/function.strrpos.php

http://php.net/manual/en/function.substr.php

Note: I recommend you verify that strrpos actualy returns a valid value.

EDIT:

$haystack = 'Hello.World.pdf';
$needle = '.';
$pos = strrpos($haystack, $needle);

echo ($pos === false ? $haystack : substr($haystack, 0, $pos));

Since you're interested in filenames and extensions; junkstu almost had it, but you can just use PATHINFO_FILENAME to get the filename without the extension:

echo pathinfo("Hello.World.pdf", PATHINFO_FILENAME);