我有一个字符串:http://www.mywebsite/456754567/531613490.htm?menu=contact
我希望得到“/”和“.htm”之间的值。这里:531613490
有什么想法吗?
答案 0 :(得分:3)
if ( preg_match('~[^/]+(?=\.htm)~', $string, $matches) ) {
echo $matches[0];
}
答案 1 :(得分:0)
我不知道你希望你的脚本有多灵活,但这是我的尝试:
它总是占用路径的最后一部分
正如约瑟夫·西尔伯的解决方案所做的那样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 );