Periksa apakah URL memiliki string tertentu dengan PHP
111
Saya ingin tahu apakah ada kata di URL.
Misalnya, jika kata mobil ada di URL, seperti www.domain.com/car/ atau www.domain.com/car/audi/ itu akan menggemakan 'mobil ada' dan jika tidak ada, itu akan menggema 'tidak ada mobil' .
Ini juga tergantung apakah Anda hanya mencari kata mobil atau apakah Anda juga menginginkan jenis mobil atau mobilnya juga. Anda mungkin membutuhkan preg_match, strpos, explode dan in_array / array_search, benar-benar tergantung. jika Anda menginginkan sesuatu yang sederhana, cukup gunakan strpos seperti yang disarankan
Ini adalah solusi yang bagus tetapi berhati-hatilah karena ini akan cocok dengan URL yang memiliki mobil di mana saja. Misalnya www.domain.com/car-pricingatau www.domain.com/carparksakan memvalidasi dan mengeluarkan Car exists. Mungkin itu tidak masalah dalam kasus Anda, tetapi untuk orang lain mungkin relevan!
Javacadabra
Persis saya mencari Great!
Vignesh Krishnamoorthy
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];echo count(strpos($url,'category'));memberi saya 1terlepas dari apakah categoryada di Url atau tidak. Tahu kenapa?
Si8
66
Menurut saya cara termudah adalah:
if(strpos($_SERVER['REQUEST_URI'],"car")!==false){// car found}
// Check if URL contains the word "car" or "CAR"if(stripos($_SERVER['REQUEST_URI'],'car')!==false){
echo "Car here";}else{
echo "No car here";}
Jika Anda ingin menggunakan HTML dalam gema, pastikan untuk menggunakan '' bukan "".
Saya menggunakan kode ini untuk menunjukkan peringatan di halaman web saya https://geaskb.nl/
yang URL-nya berisi kata "Omnik"
tapi sembunyikan peringatan di halaman yang tidak mengandung kata "Omnik" di URL-nya.
Parameter URL dan diterima dari variabel global yang disebut $_GETyang sebenarnya adalah array. Jadi, untuk mengetahui apakah suatu URL berisi parameter, Anda bisa menggunakan isset()fungsinya.
if(isset($_GET['yourparametername'])){//The parameter you need is present}
Setelah itu, Anda dapat membuat array terpisah dari parameter tersebut yang perlu Anda lampirkan ke URL.
Sebagai contoh:
if(isset($_GET['param1'])){
\\The parameter you need is present
$attachList['param1']= $_GET['param1'];}if(isset($_GET['param2'])){
$attachList['param2']= $_GET['param2];
}
Nah, untuk mengetahui perlu atau tidaknya sebuah ?simbol, hitung saja larik ini
if(count($attachList)){
$link .="?";// and so on}
Memperbarui:
Untuk mengetahui apakah ada parameter yang disetel, cukup hitung $ _GET
Ini menjawab pertanyaan tetapi ada metode yang lebih baik untuk melakukannya ... Fungsi ini mengembalikan string yang dimulai dari karakter yang ditemukan ... strpbrk()dokumentasi dapat ditemukan di sini
s($_SERVER['REQUEST_URI'])->contains('car')
terbantu, seperti yang ditemukan di perpustakaan mandiri ini .Jawaban:
Cobalah sesuatu seperti ini. Baris pertama membangun URL Anda dan sisanya memeriksa apakah mengandung kata "mobil".
sumber
www.domain.com/car-pricing
atauwww.domain.com/carparks
akan memvalidasi dan mengeluarkanCar exists
. Mungkin itu tidak masalah dalam kasus Anda, tetapi untuk orang lain mungkin relevan!$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
echo count(strpos($url,'category'));
memberi saya1
terlepas dari apakahcategory
ada di Url atau tidak. Tahu kenapa?Menurut saya cara termudah adalah:
sumber
Lihat
strpos
manualsumber
sumber
bekerja untuk saya dengan php
sumber
strstr tidak ada saat itu?
Ini pasti salah satu cara termudah kan?
sumber
Lihat fungsi strpos :
sumber
Anda dapat mencoba metode .htaccess yang mirip dengan konsep cara kerja wordpress.
Referensi: http://monkeytooth.net/2010/12/htaccess-php-how-to-wordpress-slugs/
Tapi saya tidak yakin apakah itu yang Anda cari persis seperti yang Anda katakan ..
sumber
Sepertinya ini berhasil.
sumber
Tentunya ini adalah cara yang benar ....
Jika tidak, pelaporannya berlawanan dengan cara seharusnya ...
sumber
Ini berhasil untuk saya:
sumber
Parameter URL dan diterima dari variabel global yang disebut
$_GET
yang sebenarnya adalah array. Jadi, untuk mengetahui apakah suatu URL berisi parameter, Anda bisa menggunakanisset()
fungsinya.Setelah itu, Anda dapat membuat array terpisah dari parameter tersebut yang perlu Anda lampirkan ke URL.
Sebagai contoh:
Nah, untuk mengetahui perlu atau tidaknya sebuah
?
simbol, hitung saja larik iniMemperbarui:
Untuk mengetahui apakah ada parameter yang disetel, cukup hitung $ _GET
sumber
sumber
Anda dapat menggunakan fungsi ini sebagai pak kode ini
sumber
(> PHP 5)
sumber
strpbrk()
dokumentasi dapat ditemukan di sini