This package will help you when str_replace gets a little bit messy.
When you see something like this:
$remove_characters = ['<p>', '</p>', ''', ''', '<h2>', '</h2>', '<strong>', '</strong>', ' ', '?','@name', '&rsquot;', '"', '@firstname'];
$replace_with = ['', '', "'", "'", '', '', '', '', '', '?', $user->name, "'", '"', $user->first_name];
$message = str_replace($remove_characters, $replace_with, $message);
A cleaner way:
use Jkque\StringReplace\StringReplace;
$message = StringReplace::content($string)
->when($user, function ($string) use($user) {
return $string->with(new UserStringReplace($user));
})
->variables([
''' => "'",
'?' => '?'
])
->replace();
use Jkque\StringReplace\StringReplace;
use App\User;
class UserStringReplace extends StringReplace
{
public function __construct(User $user)
{
$this->variables([
'@name' => $user->name,
]);
}
}
use Jkque\StringReplace\StringReplace;
$string = 'We are awesome <p>in php</p> replacethis';
$string = StringReplace::content($string)
->variables([
'replacethis' => 'coding',
])
->replace(); // the ending method to be called
You can use conditional closures when
and unless
$string->when($somecondtion, function ($string) {
// do something;
})
By default html tags is being strip but you can turn it off by passing a false value in stripTags(false)
method.
To breakdown complex process into individual tasks you can create a class that extends Jkque\StringReplace\StringReplace
use Jkque\StringReplace\StringReplace;
class RemoveBadWords extends StringReplace
{
public function __construct()
{
$this->variables([
'badword' => '*',
]);
}
}
A helper command to create this class php artisan string-replace:pipe {name} {model? : With model}
. You can change the namespace of your model in the config file the default is 'App\'.
You can install the package via composer:
composer require jkque/laravel-string-replace
publish config files
php artisan vendor:publish --provider="Jkque\StringReplace\StringReplaceServiceProvider"
composer test
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.