我有一个字符串: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://www.mywebsite/456754567.htm/531613490.htm?menu=contact'
像 Joseph Silber 的解决方案那样失败。
<?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 );