Замінюйте префікси рядків за допомогою методу replaceStart в Laravel

Потрібно замінити текст на початку рядка? Метод Str::replaceStart в Laravel пропонує точний спосіб змінювати рядки лише тоді, коли вони починаються з конкретного вмісту.

Основне використання

Замінити текст на початку рядка:

use Illuminate\Support\Str;  

// Успішна заміна  
$replaced = Str::replaceStart('Hello', 'Laravel', 'Hello World');  
// Результат: 'Laravel World'  
// Без заміни (не починається з 'World')  
$replaced = Str::replaceStart('World', 'Laravel', 'Hello World');  
// Результат: 'Hello World'

Приклад із реального життя

Ось як можна використовувати це в форматері URL:

class UrlFormatter  
{  
 public function normalizeProtocol(string $url, string $protocol = 'https')  
 {  
 // Заміна http:// на https://  
 $url = Str::replaceStart('http://', $protocol . '://', $url);  

 // Додавання протоколу, якщо його немає  
 if (!str_starts_with($url, $protocol . '://')) {  
 $url = $protocol . '://' . $url;  
 }  

 return $url;  
 }  

 public function standardizeDomain(string $url, string $mainDomain)  
 {  
 // Заміна www на основний домен  
 $url = Str::replaceStart('www.', $mainDomain . '.', $url);  

 // Заміна dev на основний домен  
 $url = Str::replaceStart('dev.', $mainDomain . '.', $url);  

 return $url;  
 }  
 public function cleanupApiEndpoint(string $endpoint)  
 {  
 // Видалення ведучого /api, якщо він присутній  
 return Str::replaceStart('/api', '', $endpoint);  
 }  
}  

// Використання  
$formatter = new UrlFormatter();  
echo $formatter->normalizeProtocol('http://example.com');  
// Вивід: 'https://example.com'  
echo $formatter->standardizeDomain('www.example.com', 'app');  
// Вивід: 'app.example.com'  
echo $formatter->cleanupApiEndpoint('/api/users');  
// Вивід: '/users'

Метод replaceStart дає точний контроль над змінами рядків, коли потрібно працювати з вмістом на початку рядка.

Якщо цей посібник був корисний, підпишіться на мою щоденну розсилку та слідкуйте за мною на X/Twitter і Bluesky. Це дуже допомагає!

Перекладено з: Replace String Prefixes with Laravel’s replaceStart Method

Leave a Reply

Your email address will not be published. Required fields are marked *