如何从远程网址获取带有multipart的文件名

时间:2015-03-03 22:20:10

标签: php

我的远程机器上有一些这种格式的文件,如下所示:

123-0.jpeg,123-1.jpeg,123-2.jpeg,123-3.jpeg, ...
544-0.jpeg,544-1.jpeg,544-2.jpeg,544-3.jpeg, ...

现在我只想从url获取所有以123开头的文件名(此格式为123- * .jpeg),但我不知道如何用这样的格式重命名:123 - * .jpeg也许可以一些array或者你知道,有人能告诉我谢谢你吗?! 或者如果可能的话,只需在我的情况下获得持续的名称为123-3.jpeg。

1 个答案:

答案 0 :(得分:1)

你在寻找glob函数吗?

http://php.net/manual/en/function.glob.php

foreach (glob("123-*.jpeg") as $filename) {
  echo "$filename size " . filesize($filename) . "\n";
}

编辑:根据您的评论,这可能会做您正在寻找的内容:它有一些缺陷(例如:远程服务器更改输出),但它应该足以让您进入正确的方向。

$html = file_get_contents("http://plusmaster.info/screenshots/");

// Note that this pattern returns nothing at the present.
$pattern = '/data-name="(123-[0-9]*\.jpeg)" /';

// If you want to get *-123.jpeg instead, use this:
// $pattern = '/data-name="([0-9]*-123\.jpeg)" /';

preg_match_all($pattern, substr($html,3), $matches, PREG_PATTERN_ORDER);

// To dump the whole array of matches:
var_dump($matches[1]);

// To echo the last item in the array
echo end($matches[1]);

一些在PHP中使用Regex的有用工具:

1)Rubular通常也非常适合测试PHP正则表达式,即使它是为Ruby制作的:http://rubular.com/

2)PHP手册更深入地解释了preg_match_all:http://php.net/manual/en/function.preg-match-all.php

如果您有任何问题,请与我们联系。