php urlencode kullanmak nasıl

3 Cevap php

Ben dize dönüştürmek için urlencode kullanmaya çalışıyorum: <a href="<?php print 'search.php?query='.quote_replace(addmarks($search_results['did_you_mean'])).'&search=1'?>">

Aslında, ben bir arama motoru uygulamak istiyor.

|-www
 |- index.php
 |- search directory
  |- search.php
  |- header.html
  |- search_form.html
  |- search_result.html
  |- footer.html

search.php includes header.html,search_form.html,search_result.html etc.

Ben kullanarak search.php erişebilirsiniz: localhost/index.php/?page=search

search_form.html arama düğmesi vardır. Ve kullanarak search.php çağırır: <form action="index.php/?page=search" method="get">. Ben bunun doğru olup olmadığından emin değilim.

After submitting the search request, search.php calls search_result.html to show result. The code in search_result.html: <a href="<?php print 'search.php?query='.quote_replace(addmarks($search_results['did_you_mean'])).'&search=1'?>"><?php print $search_results['did_you_mean_b']; ?>

Bu çalışması gerekir gibi görünüyor, ama arama butonuna tıkladıktan sonra, sonuç url index.php/?query=&search=1 olduğunu. Ve i index.php/?page=search/?query=&search=1 olması gerektiğini düşünüyorum.

Yani, ben bunu çözmek için urlencode kullanmayı deneyin. Fikir doğru ise ben bilmiyorum.

Yardımlarınız için teşekkürler çok.

3 Cevap

urlencode şöyle kullanılır:

$url = 'http://example.com/page?foo='.urlencode($foo).'&bar='.urlencode($bar);

Öncelikle, muhtemelen GET aracılığıyla bu dememeliyiz. İkincisi, bir arama motoru sağlamak için tipik bir şekilde bu gibi bir şeydir;

search.php               - provides the search button, input fields, etc.
search_result.php        - performes some magic to get results depending on your search

So, in search.php you make your search form, the button, and whatever else, pointing to search_result.php. The values of input are submitted automatically if you define the form as GET.

IMO size dosya yapısını overthink gerekir. Eğer kök dosya içinde dosyalarını uygulamak eğer arama için kendi bir klasör olması çok mantıklı değil.

Daha böyle bir şey deneyin:

/
 index.php
 search.php
 search_result.php

Ayrıca, (ve genellikle PHP / HTML), anlamak daha kolay ve write HTML in PHP, not PHP in HTML için yazı stili daha iyi. Gibi kod <htmltag attr="<?php echo $value; ?>" />, okumak korumak ve yazarsanız it would daha şeyler kaçan çok fazla zaman tüketmek için tercüman neden çok zor echo '<html attr="'.$value.'" />';.

Sana noktası olsun umuyoruz. Sizin yaklaşım tamam, ama etkili uzak ve sorun çok kullandığınız kod tarafından ancak bütün kod ve özellikle dosya yapısını yazdı arada neden değildir.

Sizin basit arama için geri benim örnek geliyor, (benim dünyamda ^ ^) "en iyi en yakın" Dediğim gibi, olan, aynı dizinde iki *. Php-files.

Form noktaları action="search_result.php". Orada, sen arama sorgusu yapmak ve kullanıcıya göstermek için bazı şeyler kaydedin. Bir formun değerleri automatically name, giriş alanının bağlı olarak. Php-dosyaya yazılmış bulunmaktadır.

Say, bir input type="text" name="search_query" var ve hello world tuşuna basın search ile doldurmak - Eğer search_result.php?search_query=hello%20world yönlendirileceksiniz.

In search_result.php sonra $_GET['search_query'] aracılığıyla arama sorgusunu erişebilir ve onunla bir şeyler yapmak.

Sonuçlar için, onun sorgu daha iyi yapmak için nasıl kullanıcıya, ona bir mesaj yazmak ve yine sorguda doldurmak için geri search.php onu işaret edebilir öneri bir şey bulmak ya da yoktu diyelim.

Metin Duvar, biliyorum, ama ben yazdıklarını anlamak ve adapte yapmak çalışırsanız, 50/100 için 15/100 PHP-scripting açısından gelişmiş olacak ;-)