2016-11-02 8 views
1

Original-String (Wie ein Sandwich zu machen?).PHP - ersetzen Sie% 20,% 2D in URLs

wie man eine URL sieht, die so aussieht (how%20to%20make%20a%20sandwich%F2) um so zu erscheinen (how-to-make-a-sandwich?) in php.

Ich weiß, dass str_replace kann dies tun, aber es funktioniert nicht in allen Fällen.

Ich möchte etwas als Best Practice angesehen und funktioniert in allen Fällen.

Danke!

+2

In welchen Fällen funktioniert 'str_replace' nicht? –

+0

Möchten Sie Bindestriche oder Leerzeichen zwischen den Wörtern? –

+0

Ich möchte Bindestriche zwischen den Wörtern – Malmo

Antwort

1

preg_replace ist ein effizienter Weg, es zu tun, indem beide Werte gleichzeitig zu ersetzen:

<?php 
$string = "how%20to%20make%20a%20sandwich%F2"; 
$find = array('/%20/','/%F2/'); 
$replace = array('-','?'); 
echo preg_replace($find, $replace, $string); 
?> 
2

Sie die Build-in PHP-Funktion verwenden:

$str = urldecode(string $str)

Funktion. Das konvertiert jemals% ## in das entsprechende Zeichen.

0

Nun, das ist die einfachste, sauberste Art, dies zu tun. Und es verwendet natürlich str_replace.

$test = urldecode("how%20to%20make%20a%20sandwich%F2"); 
$test = str_replace(" ", "-", $test);