包含空格和特殊字符的URL的最佳做法

时间:2011-01-25 15:48:48

标签: php mysql

我正在修改一个小型Web应用程序。此Web应用程序允许用户自己输入/指定类别。我注意到在数据库中,有很多类别包含空格和特殊字符,例如Cakes&杯形蛋糕。

在前端,数据库以URL链接的形式显示所有用户定义的类别,用户可以单击它们以进一步查看类别中的内容。

使用rawurlencode函数对前端类别链接进行编码,它看起来像这样。

./show.php?category=<?php echo rawurlencode($e['category']); ?>

在后端,一个函数将GET URL,然后在将其发送到数据库进行查询之前对其进行解码。

$category = rawurldecode(htmlspecialchars_decode($category));

它工作正常,但似乎有点“最后一刻”和“不成熟”。

因此我想知道,对于URL特殊字符和空格,PHP的最佳做法是什么?

提前谢谢。

1 个答案:

答案 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。