Hari ini, Kami ingin berbagi dengan Anda PHP menghapus http https www dan garis miring dari URL. Dalam posting ini kami akan menunjukkan kepada Anda menghapus www dari url php, dengar Haruskah Anda Menyimpan atau Menghapus The Trailing Slash pada URL? . Dalam posting ini, kita akan belajar tentang menghapus http, https dan garis miring dari input pengguna di php dengan sebuah contoh
PHP hapus http https www dan garis miring dari URL
Isi
Berikut Cara Menghilangkan http. //, www dan garis miring dari URL di PHP?
Karena saya akan membahas Posting ini dengan contoh kerja langsung untuk mengembangkan PHP Regex untuk Menghapus http. // dari string
, jadi beberapa file utama dan struktur Direktori untuk contoh ini adalah sebagai berikut
Baca Juga Ini 👉 gabung kiri vs gabung kanan - Perbedaan antara Gabung Kiri dan Gabung Kanan
PHP Regex untuk Menghapus http. // dari stringDekode URL PHP
Pertama-tama, string URL Kueri yang disandikan harus kita dekode. Untuk contoh PHP Sederhana (+) diterjemahkan ke karakter spasi
<?php // Decode the Encoded Query URL string $user_query_uri = "http%3A%2F%2Fpakainfo.com%2F"; $user_query_uri = urldecode($user_query_uri); // results //www.pakainfo.com/ echo $user_query_uri; ?>Hapus http. // dari URL menggunakan PHP
Jika Anda ingin menghapus satu-satunya http. // dari string URL Kueri. Anda telah menggunakan metode PHP preg_replace()
<?php // Remove // $user_query_uri = "//www.pakainfo.com"; $user_query_uri = preg_replace( "#^[^:/.]*[:/]+#i", "", $user_query_uri ); /* results pakainfo.com */ echo $user_query_uri; ?> _Tambahkan http. // di URL di PHP
Sebaliknya, jika kita ingin menambahkan http. // di Query URL string, kita harus menggunakan metode preg_match(). dan kemudian, kita harus memeriksa http. // atau https. // ada dalam string URL Kueri. Jika ya maka tidak perlu http. // awali jika tidak kita harus http. // tambahkan ke string URL Kueri
Laravel menyediakan beberapa bantuan untuk membantu Anda membuat URL untuk aplikasi Anda. Pembantu ini sangat membantu saat membuat tautan di template dan respons API Anda, atau saat membuat respons pengalihan ke bagian lain dari aplikasi Anda
Dasar
Menghasilkan URL
Pembantu
use Illuminate\Support\Facades\URL;
_0 dapat digunakan untuk menghasilkan URL arbitrer untuk aplikasi Anda. URL yang dihasilkan akan secara otomatis menggunakan skema (HTTP atau HTTPS) dan host dari permintaan saat ini yang ditangani oleh aplikasi$post = App\Models\Post::find(1);
echo url("/posts/{$post->id}");
// //example.com/posts/1
Mengakses URL Saat Ini
Jika tidak ada jalur yang diberikan ke helper
use Illuminate\Support\Facades\URL;
_0, instanceuse Illuminate\Support\Facades\URL;
2 dikembalikan, memungkinkan Anda untuk mengakses informasi tentang URL saat ini// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
_Masing-masing metode ini juga dapat diakses melalui fasad
use Illuminate\Support\Facades\URL;
3use Illuminate\Support\Facades\URL;
URL Untuk Rute Bernama
Pembantu
use Illuminate\Support\Facades\URL;
_4 dapat digunakan untuk menghasilkan URL ke. Rute bernama memungkinkan Anda menghasilkan URL tanpa digabungkan ke URL sebenarnya yang ditentukan pada rute. Oleh karena itu, jika URL rute berubah, panggilan Anda ke fungsiuse Illuminate\Support\Facades\URL;
4 tidak perlu diubah. Misalnya, bayangkan aplikasi Anda berisi rute yang ditentukan seperti berikut iniRoute::get('/post/{post}', function (Post $post) {
Untuk menghasilkan URL ke rute ini, Anda dapat menggunakan pembantu
use Illuminate\Support\Facades\URL;
4 seperti ituecho route('post.show', ['post' => 1]);
// //example.com/post/1
Tentu saja, helper
use Illuminate\Support\Facades\URL;
_4 juga dapat digunakan untuk menghasilkan URL untuk rute dengan banyak parameterRoute::get('/post/{post}/comment/{comment}', function (Post $post, Comment $comment) {
})->name('comment.show');
echo route('comment.show', ['post' => 1, 'comment' => 3]);
// //example.com/post/1/comment/3
Elemen larik tambahan apa pun yang tidak sesuai dengan parameter definisi rute akan ditambahkan ke string kueri URL
echo route('post.show', ['post' => 1, 'search' => 'rocket']);
// //example.com/post/1?search=rocket
Model Fasih
Anda akan sering membuat URL menggunakan kunci rute (biasanya kunci utama) dari model Eloquent. Untuk alasan ini, Anda dapat meneruskan model Eloquent sebagai nilai parameter. Pembantu
use Illuminate\Support\Facades\URL;
_4 akan secara otomatis mengekstrak kunci rute modelecho route('post.show', ['post' => $post]);
URL yang ditandatangani
Laravel memungkinkan Anda untuk dengan mudah membuat URL "bertanda tangan" ke rute bernama. URL ini memiliki hash "tanda tangan" yang ditambahkan ke string kueri yang memungkinkan Laravel memverifikasi bahwa URL belum dimodifikasi sejak dibuat. URL yang ditandatangani sangat berguna untuk rute yang dapat diakses publik namun membutuhkan lapisan perlindungan terhadap manipulasi URL
Misalnya, Anda mungkin menggunakan URL bertanda tangan untuk menerapkan tautan "berhenti berlangganan" publik yang dikirim melalui email ke pelanggan Anda. Untuk membuat URL bertanda tangan ke rute bernama, gunakan metode
use Illuminate\Support\Facades\URL;
9 dari fasaduse Illuminate\Support\Facades\URL;
3use Illuminate\Support\Facades\URL;
return URL::signedRoute('unsubscribe', ['user' => 1]);
Jika Anda ingin membuat URL rute bertanda tangan sementara yang kedaluwarsa setelah jangka waktu tertentu, Anda dapat menggunakan metode
Route::get('/post/{post}', function (Post $post) {
1. Ketika Laravel memvalidasi URL rute yang ditandatangani sementara, itu akan memastikan bahwa stempel waktu kedaluwarsa yang dikodekan ke dalam URL yang ditandatangani belum berlaluuse Illuminate\Support\Facades\URL;
return URL::temporarySignedRoute(
'unsubscribe', now()->addMinutes(30), ['user' => 1]
Memvalidasi Permintaan Rute yang Ditandatangani
Untuk memverifikasi bahwa permintaan masuk memiliki tanda tangan yang valid, Anda harus memanggil metode
Route::get('/post/{post}', function (Post $post) {
2 pada instanceRoute::get('/post/{post}', function (Post $post) {
3 yang masuk// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
_0Terkadang, Anda mungkin perlu mengizinkan frontend aplikasi untuk menambahkan data ke URL bertanda tangan, seperti saat melakukan paginasi sisi klien. Oleh karena itu, Anda dapat menentukan parameter kueri permintaan yang harus diabaikan saat memvalidasi URL bertanda tangan menggunakan metode
Route::get('/post/{post}', function (Post $post) {
// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
_1Alih-alih memvalidasi URL yang ditandatangani menggunakan instance permintaan yang masuk, Anda dapat menetapkan middleware
Route::get('/post/{post}', function (Post $post) {
5 ke rute. Jika belum ada, Anda harus menetapkan kunci middleware ini di arrayRoute::get('/post/{post}', function (Post $post) {
6 kernel HTTP Anda// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
_2Setelah Anda mendaftarkan middleware di kernel Anda, Anda dapat melampirkannya ke sebuah rute. Jika permintaan masuk tidak memiliki tanda tangan yang valid, middleware akan secara otomatis mengembalikan respons HTTP
Route::get('/post/{post}', function (Post $post) {
7// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
_3Menanggapi Rute yang Ditandatangani Tidak Valid
Saat seseorang mengunjungi URL bertanda tangan yang telah kedaluwarsa, mereka akan menerima halaman kesalahan umum untuk kode status HTTP
Route::get('/post/{post}', function (Post $post) {
7. Namun, Anda dapat menyesuaikan perilaku ini dengan menentukan penutupan "renderable" khusus untuk pengecualianRoute::get('/post/{post}', function (Post $post) {
9 di penangan pengecualian Anda. Penutupan ini harus mengembalikan respons HTTP// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
_4URL Untuk Tindakan Pengontrol
Fungsi
echo route('post.show', ['post' => 1]);
// //example.com/post/1
_0 menghasilkan URL untuk tindakan pengontrol yang diberikan// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
_5Jika metode pengontrol menerima parameter rute, Anda dapat meneruskan array asosiatif dari parameter rute sebagai argumen kedua ke fungsi
// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
_6Nilai dasar
Untuk beberapa aplikasi, Anda mungkin ingin menentukan nilai default seluruh permintaan untuk parameter URL tertentu. Misalnya, bayangkan banyak rute Anda menentukan parameter
echo route('post.show', ['post' => 1]);
// //example.com/post/1
1// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
_7Sulit untuk selalu melewati
echo route('post.show', ['post' => 1]);
// //example.com/post/1
2 setiap kali Anda memanggil pembantuuse Illuminate\Support\Facades\URL;
4. Jadi, Anda dapat menggunakan metodeecho route('post.show', ['post' => 1]);
// //example.com/post/1
_4 untuk menentukan nilai default untuk parameter ini yang akan selalu diterapkan selama permintaan saat ini. Anda mungkin ingin memanggil metode ini dari sehingga Anda memiliki akses ke permintaan saat ini// Get the current URL without the query string...
// Get the current URL including the query string...
// Get the full URL for the previous request...
_8Setelah nilai default untuk parameter
echo route('post.show', ['post' => 1]);
// //example.com/post/1
_2 telah ditetapkan, Anda tidak perlu lagi meneruskan nilainya saat membuat URL melalui bantuanuse Illuminate\Support\Facades\URL;
4Default URL & Prioritas Middleware
Menyetel nilai default URL dapat mengganggu penanganan Laravel terhadap binding model implisit. Oleh karena itu, Anda harus menetapkan default URL untuk dieksekusi sebelum middleware
echo route('post.show', ['post' => 1]);
// //example.com/post/1
7 milik Laravel. Anda dapat melakukannya dengan memastikan middleware Anda terjadi sebelumecho route('post.show', ['post' => 1]);
// //example.com/post/1
7 middleware dalam propertiecho route('post.show', ['post' => 1]);
// //example.com/post/1
9 dari kernel HTTP aplikasi AndaProperti
echo route('post.show', ['post' => 1]);
// //example.com/post/1
_9 didefinisikan dalam kelas dasarRoute::get('/post/{post}/comment/{comment}', function (Post $post, Comment $comment) {
})->name('comment.show');
echo route('comment.show', ['post' => 1, 'comment' => 3]);
// //example.com/post/1/comment/3
1. Anda dapat menyalin definisinya dari kelas itu dan menimpanya di kernel HTTP aplikasi Anda untuk memodifikasinya