我正在修改一个小型Web应用程序。此Web应用程序允许用户自己输入/指定类别。我注意到在数据库中,有很多类别包含空格和特殊字符,例如Cakes&杯形蛋糕。
在前端,数据库以URL链接的形式显示所有用户定义的类别,用户可以单击它们以进一步查看类别中的内容。
使用rawurlencode函数对前端类别链接进行编码,它看起来像这样。
./show.php?category=<?php echo rawurlencode($e['category']); ?>
在后端,一个函数将GET
URL,然后在将其发送到数据库进行查询之前对其进行解码。
$category = rawurldecode(htmlspecialchars_decode($category));
它工作正常,但似乎有点“最后一刻”和“不成熟”。
因此我想知道,对于URL特殊字符和空格,PHP的最佳做法是什么?
提前谢谢。
答案 0 :(得分:2)
我更喜欢使用“slug”方法。你可以“敲击”字符串并使用网址中的slu ..
http://sourcecookbook.com/en/recipes/8/function-to-slugify-strings-in-php
您需要在数据库中为slug添加一列,但是您可以轻松地在URL中表示用户输入字段并使其可读。 “function-to-slugify-strings-in-php”是一个可能原本看起来像“在PHP中强化字符串的函数”的slug。