Ich habe einige Dateien mit diesem Format auf meinem Remote-Computer wie folgt:
123-0.jpeg,123-1.jpeg,123-2.jpeg,123-3.jpeg, ...
544-0.jpeg,544-1.jpeg,544-2.jpeg,544-3.jpeg, ...
Jetzt möchte ich nur alle Dateinamen erhalten, die mit 123 von URL (dieses Format 123- * .jpeg) begonnen haben, aber ich weiß nicht, wie ich diese Namen mit einem solchen Format rotieren kann: 123 - * array
oder weißt du, kann mir jemand danke sagen ?! oder wenn möglich nur den Namen des letzten in meinem Fall 123-3.jpeg.
Antworten:
1 für die Antwort № 1Suchen Sie nach der Glob-Funktion?
http://php.net/manual/en/function.glob.php
foreach (glob("123-*.jpeg") as $filename) {
echo "$filename size " . filesize($filename) . "n";
}
Bearbeiten: Basierend auf Ihren Kommentaren wird dies wahrscheinlich das tun, wonach Sie suchen: Es hat einige Fehler (z. B. Ausgabe von Remoteserver-Änderungen), aber es sollte ausreichen, um Sie in die richtige Richtung zu bringen.
$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]);
Ein paar nützliche Tools für die Arbeit mit Regex in PHP:
1) Rubular eignet sich grundsätzlich auch für das Testen von PHP-Regex, auch wenn es für Ruby erstellt wurde: http://rubular.com/
2) Das PHP-Handbuch erklärt preg_match_all ausführlicher: http://php.net/manual/en/function.preg-match-all.php
Lass es mich wissen, wenn du irgendwelche Fragen hast.