Skip to content

Instantly share code, notes, and snippets.

@vlakoff
Created February 24, 2016 16:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vlakoff/9269ea56b3c305575ff3 to your computer and use it in GitHub Desktop.
Save vlakoff/9269ea56b3c305575ff3 to your computer and use it in GitHub Desktop.
Add Str::replaceFirst, replaceLast and corresponding helpers to Laravel 5.1 LTS
<?php
use Illuminate\Support\Str;
Str::macro('replaceFirst', function ($search, $replace, $subject) {
$position = strpos($subject, $search);
if ($position !== false) {
return substr_replace($subject, $replace, $position, strlen($search));
}
return $subject;
});
Str::macro('replaceLast', function ($search, $replace, $subject) {
$position = strrpos($subject, $search);
if ($position !== false) {
return substr_replace($subject, $replace, $position, strlen($search));
}
return $subject;
});
if (! function_exists('str_replace_first')) {
function str_replace_first($search, $replace, $subject)
{
return Str::replaceFirst($search, $replace, $subject);
}
}
if (! function_exists('str_replace_last')) {
function str_replace_last($search, $replace, $subject)
{
return Str::replaceLast($search, $replace, $subject);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment