使用SlimPHP,如何创建没有%20的干净URL?

时间:2017-08-29 21:43:15

标签: php slim

我正在尝试使用SlimPHP创建一个轻量级的PHP应用程序。我在数据库中有汽车型号名称的值,它们包含空格。

每当您尝试转到mysite.com/detail/2001/mazda/b2300%20pickup等详细信息页面时,都会出错。

如果您访问的详细信息页面没有mysite.com/detail/2001/mazda/b2300这样的空格,则可以正常使用。

我想用破折号替换空格。

这是我的错误的屏幕截图以及我在数据库中显示的内容:

enter image description here

路线:

$app->get('/detail/:year/:make/:model', 'getFull');

function getFull($year, $make, $model) {

$app = new \Slim\Slim(); 
try {
    $db = getConnection();
    $sql = "SELECT * FROM towdata WHERE YearMfg = ". $db->quote($year) . "AND Make = ". $db->quote($make) . "AND Model = ". $db->quote($model) . "ORDER BY YearMfg DESC";
    $query = $db->query($sql);
    $result_array = $query->fetchAll(PDO::FETCH_ASSOC); 
    $app->render('unit.php', array('all' => $result_array));            
} catch(PDOException $e) {
    echo "error: " . $e;
}   

}

我建立网址的Unit.php

<a href=\"/detail/".strtolower($data['YearMfg'])."/".strtolower($data['Make'])."/".strtolower($data['Model'])."\">

感谢您的时间,我将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果您想使用连字符/短划线代替空格,可以使用PHP str_replacehttp://php.net/str_replace

echo str_replace(' ', '-', 'honda civic'); // honda-civic