私は正規表現についてこの奇妙な状況に遭遇しています。IDが設定されているかどうかを最初に確認し、設定されていない場合はにリダイレクトしますindex.php
これはINDEX.PHPです
$title = "This is a title";
$id = "5";
$queryc = $db->prepare("SELECT * FROM categories WHERE id = :id");
$queryc->bindParam(':id', $id, PDO::PARAM_INT);
$queryc->execute();
/*** fetch the results ***/
$resultc = $queryc->fetchAll();
$count = count($resultc);
if ($count > 0)
{
foreach($resultc as $rowc)
{
$cat_name = htmlentities($rowc['cat_name'], ENT_QUOTES, 'utf-8');
$cat_name = stripslashes($cat_name);
}
}else {
//redirect is a function
redirect("index.php");
}
echo "
<td width='57%' height='126' class='bord' ><a href='$cat_name-$id.htm'
class='title_style'>" . $title . "</a><br>";
$cat_name
2つの単語をスペースで区切るか、一部の文字を除いて文字にアクセントを付けることができます。そのために私は.htaccessを使用しました
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([^!@#$%^&*(){}]+)-(\d+)\.htm$ file.php?id=$2 [L]
結果が示すfile.phpで、$idが設定されていることを確認したかった
if( isset($_GET['id']) )
{
$id = (int) $_GET['id'];
if( $id == 0 )
{
redirect("index.php");
exit;
}
}
else
{
redirect("index.php");
exit;
}
ブラウザでは、次のようになります 。mydomain.com/auto auction-5.htm
私の問題は:(
$cat_name = auto auction;
スペースに注意してください)それは機能しませんが、スペースがない場合$cat_name = autoauction;
は機能します。
スペースがある場合、どうすればそれを機能させることができますか?