У меня есть строка: http://www.mywebsite/456754567/531613490.htm?menu=contactНайти строку между символом и строкой?
Я хочу получить значение между «/» и «.htm». Здесь: 531613490
Любая идея?
У меня есть строка: http://www.mywebsite/456754567/531613490.htm?menu=contactНайти строку между символом и строкой?
Я хочу получить значение между «/» и «.htm». Здесь: 531613490
Любая идея?
if (preg_match('~[^/]+(?=\.htm)~', $string, $matches)) {
echo $matches[0];
}
Вот демо: http://codepad.viper-7.com/5kjEj6
Я не знаю, насколько гибким вы хотите, чтобы ваш сценарий будет, но вот моя попытка:
Он всегда занимает последнюю часть из путь
Это не подведет для http://www.mywebsite/456754567.htm/531613490.htm?menu=contact'
как решение Джозефа Сильбера.
<?php
$path = parse_url('http://www.mywebsite/456754567/531613490.htm?menu=contact', PHP_URL_PATH);
$pathParts = explode('/', $path);
$fullFilename = array_pop($pathParts);
// better use something like lastIndexOf(), this won't fail for 'xxx.abc.htm'
$filename = substr($fullFilename, 0, strpos($fullFilename, '.'));
var_dump($filename);
Спасибо вам большое Silber @ Джозеф! ;-) –