Я столкнулся с этой странной ситуацией с регулярным выражением. Я хочу проверить, если первый 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
может иметь два слова, разделенные пробелом или это может быть акцентировано символов тоже за исключением некоторых символы. Для этого я использовал .htaccess
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([^[email protected]#$%^&*(){}]+)-(\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 аукцион-5.htm
Моя проблема: $cat_name = auto auction;
(обратите внимание на пробел) он не работает, но если $cat_name = autoauction;
без пробелов он работает.
Как заставить его работать, когда есть места?
Что вы подразумеваете под словом "not set"? вы имеете в виду, что переданная строка будет «category name» или «category name-0»? Зачем вам нужно использовать PHP? не можете ли вы просто использовать регулярное выражение, которое вы уже используете в вашем файле .htaccess, чтобы определить, есть ли эта цифра? – dcasadevall
позволяет сказать $ id = 5, url будет mydomain.com/auto auction-5.htm, и если я запустил этот mydomain.com/auto auction-2045.htm, я хочу, чтобы он перенаправлял index.php с 2045 года. t существует. – Rocks