2017-11-11 9 views
-1

PHPでURLデコードとエンコードを使用する方法が多少混乱しています。URLをデコードしてPHPでエンコードしますか?

This is the third\'s title that goes here!! 

'は、単一引用符のHTMLコードです:

基本的に、私はこのようなことで単一引用符を持っているMYSQLのデータを持っています。

今、私はそうのようなURLにすることを使用します。

title.php?t=This is the third's title that goes here!! 

そして、私のPHPコードで、私はそうのようにそれを使用しよう:

$title = $_GET['t']; 

$urlsafe_title = urlencode($title); 
$url = $urlsafe_title; 
$htmlsafe_url = htmlspecialchars($url, ENT_QUOTES | ENT_HTML5); 


$title = utf8_decode(urldecode($htmlsafe_url)); 

しかし、私はその変数$を使用しようとすると、タイトルをMYSQLデータベースで検索すると、結果はまったくありません。しかし、タイトルとMYSQLデータベースの両方から一重引用符を削除すると、すべて正常に動作します。

誰かがこの問題についてアドバイスをお願いできますか?

ありがとうございます。

答えて

1

「Hello World」のような入力が「hello-world」として送信できるURLスラッグを使用する必要があると思います。だからここにあなたを助けることができる機能です。

function gen_slug($url) 
{ 
    //prepare string with basic normalization 
    $url = strtolower($url); 
    $url = strip_tags($url); 
    $url = stripslashes($url); 
    $url = html_entity_decode($url); 
    //Remove any quotes 
    $url = str_replace('\"','',$url); 
    //Replace non-alpha chars with '-' 
    $match = '/[^a-z0-9]+/'; 
    $replace = '-'; 
    $url = preg_replace($match, $replace, $url); 
    $url = trim($url, '-'); 
    return $url; 
} 

あなたはそれを参照として使用することができますので、title-slugまたはそのような何かのように、あなたのテーブルの上に余分な列を作成する必要があります。

だからあなたの場合には、それがこのようなことができます:title.php?t=this-is-my-title

は、それはあなたのお役に立てば幸い! :)

+1

haha​​haaa ...私はちょうどそのような何かを作成する途中だった..私は行く方法だと思う。 –

+0

lol nice !! @DavidHope – MegaColorBoy

関連する問題