php tek girişli web url soru işareti ile nasıl başa

3 Cevap php

Ben bir tek girişli web sitesinde iki soru işaretleri ile uğraşıyorum.

I'm trying to use urlencode to handle it. The original URL:

'search.php?query='.quote_replace(addmarks($search_results['did_you_mean'])).'&search=1'

Ben tek girişli web sitesinde kullanmak istiyorum:

'index.php?page='.urlencode('search?query='.quote_replace(addmarks($search_results['did_you_mean'])).'&search=1')

Bu işe yaramazsa, ve ben kullanmak gerekir, ben bilmiyorum urldecode ve bunu da kullanabilirsiniz nerede.

Eğer herhangi bir öneriniz var mı?

3 Cevap

Neden sadece o olmak yeniden yazmak

index.php?page=search&query=...

Eğer [QSA] (sorgu dizesi append) bayrağını kullanırsanız mod_rewrite sizin için yapacak.

http://wiki.apache.org/httpd/RewriteQueryString

$_SERVER['QUERY_STRING'] sonra ilk size herşeyi verecek "?" bir URL.

Buradan ya da ortak sokması fonksiyonları "patlayabilir" kullanarak ayrıştırmak.

Örnek:

http://xxx/info.php?test=1?test=2&test=3

$ _SERVER ['QUERY_STRING'] => Test = 1? Testi = 2 & test = 3

list($localURL, $remoteURL) = explode("?", $_SERVER['QUERY_STRING']);

$ LocalURL => 'test = 1'

$ RemoretURL => 'test = 2 & test = 3'

Umarım bu yardımcı olur

Ben daha basit bir sorgu formu işlemek için sunucu kodu mantığını değiştirmek için öneririm. Bu şekilde muhtemelen çok yakın bir gelecekte hiçbir yerde size yol gidiyor.

Kullanım

index.php?page=search&query=...

sorgu biçimi olarak değil, sadece mevcut uygulama mantığı karşılamak için ilk istenen formata mod_rewrite ile üzerine değil, ama sunucu tarafında biraz daha iyi mantığı ile anlaştım. Bazı IFS ve thens, anahtarları ve durumları yazmak ... ama URL'ler içine uygulamanın mantığını koymak için çalışmayın. Bu URL'ler gerçekten garip yapacak ve yakında uzay hiçbir yeri ihtiyacınız olacak tüm mantığı işlemek için bu katmanda olduğunu görürsünüz. :)