регулярное выражение — проблема PHP strpos

Я захожу на мою страницу www.mysite.com/theme/test/index.php который содержит код ниже. Я ожидаю увидеть слово test внутри h1 но это пусто 🙁 Может кто-нибудь объяснить, где я не прав?

<?php
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

if ((false !== strpos($url,'theme')) || (false !== strpos($url,'colours'))) {

if(preg_match("/\/(\d+)$/",$url,$matches)) { $end=$matches[1]; }
?>
<div class="row">
<div class="medium-12 columns">
<h1 class="page-title"><?php echo ucwords(str_replace("-"," ",$end)); ?></h1>
</div>
</div>
<?php
}
?>

Спасибо

0

Решение

Я думаю, что ваш preg_match не так. \d означает цифру. У вас нет в вашем URL.

2

Другие решения

Я не совсем уверен, какая именно информация у вас есть в вашем скрипте, когда он запускается, но я думаю, что $end никогда не устанавливается.

Убедитесь, что ваше регулярное выражение соответствует, в противном случае $end будет пустым.

0

Решено.

@ Марчин был прав.

$end = end((explode('/', rtrim($url, '/'))));

Нашел это полезным: Получить последнюю часть URL PHP

0
По вопросам рекламы [email protected]