Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP从字符串中获取特定单词(如果存在)_Php_String_Substr - Fatal编程技术网

PHP从字符串中获取特定单词(如果存在)

PHP从字符串中获取特定单词(如果存在),php,string,substr,Php,String,Substr,所以我有很多文件名,比如 $filename = "somefile-Page-1.pdf" $filename = "somefile-Page-2.pdf" 我要做的是在文件名中获取页码 so that $pageNumber will resurn Page-1 我尝试了以下方法: $pageNum = substr($filename, 0, strpos($filename, 'Page')); 但这最终还是回来了 somefile- 在您的示例中,子字符串从0开始

所以我有很多文件名,比如

  $filename = "somefile-Page-1.pdf" 
  $filename = "somefile-Page-2.pdf"
我要做的是在文件名中获取页码

so that $pageNumber will resurn Page-1
我尝试了以下方法:

$pageNum = substr($filename, 0, strpos($filename, 'Page'));
但这最终还是回来了

 somefile-

在您的示例中,子字符串从0开始,在“Page”位置结束。试一试

$pageNum = substr($filename, strpos($filename, 'Page'), -4);
要获取从“页面”到结尾的部分(无句点和扩展,因此为-4)。

请尝试以下操作:

$filename = 'somefile-Page-2.pdf';
preg_match('/(Page\-(\d+))\.pdf/i', $filename, $matches);
匹配数组的格式为:

数组(大小=3)

0=>字符串“Page-2.pdf”(长度=10)

1=>字符串“第2页”(长度=6)

2=>字符串“2”(长度=1)


你为什么从零开始。您应该从文件名开始的子字符串开始<代码>子文件($filename,strpos($filename,'Page'),-4)
$filename = 'somefile-Page-2.pdf';
preg_match('/(Page\-(\d+))\.pdf/i', $filename, $matches);