Forum

> > Off Topic > PHP Problem
ForenübersichtOff Topic-ÜbersichtEinloggen, um zu antworten

Deutsch PHP Problem

14 Antworten
Zum Anfang Vorherige 1 Nächste Zum Anfang

alt PHP Problem

Icereed
User Off Offline

Zitieren
Also,
Ich habe einen Array, der alle Dateinamen(inklusive Order)
beinhaltet.
Ich möchte nun nur PNG, JPG... (Bilder)Files haben.
Hier ist der Array
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[2] => alert_button.png
    [3] => background.png
    [4] => background2.png
    [5] => background_black.png
    [6] => background_brown_orange.png
    [7] => background_orange.png
    [8] => background_pm.PNG
    [9] => banner.jpg
    [10] => banner.psd
    [11] => bg_navi.bmp
    [12] => bg_navi.gif
    [13] => bg_navi.png
    [14] => bild-338.png
    [15] => bob_plankton.png
    [16] => cursor.GIF
    [17] => cursor.PNG
    [18] => erdbeere.png
    [19] => hunde_spur.psd
    [20] => kuabatz.JPG
    [21] => laechel.gif
    [22] => logo.gif
    [23] => logo.png
    [24] => logo2.gif
    [25] => logo2.png
    [26] => logo2.psd
    [27] => logo3.jpg
    [28] => made
    [29] => message_kicker.png
    [30] => reiter1.gif
    [31] => reiter1.png
    [32] => reiter2.png
    [33] => seite.png
    [34] => smileys
    [35] => top_navi_background.png
    [36] => Unbenannt-1.psd
    [37] => wallpaper.bmp
    [38] => x-logo.png
    [39] => x_logo.gif
    [40] => x_logo.ico
    [41] => x_logo2.bmp

alt Re: PHP Problem

Icereed
User Off Offline

Zitieren
1
2
3
4
5
<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?>
jo genau.
wie muss ich z.b. (glob("*.png") as $filename) {...}
setzen, dass ich gleichzeitig nach mehreren Dateitypen
suchen kann?

alt Re: PHP Problem

jeepohahyo
User Off Offline

Zitieren
Ich hab das noch nie benutzt, aber ich glaube, dass man halt nen Regex nimmt

1
"\*.[txt|png|jpg]\i"
müsste das sein (für txt png und jpg eben ;))...

alt Re: PHP Problem

jeepohahyo
User Off Offline

Zitieren
Scheise, ich kann nicht mehr regexen

Auf jeden Fall geht schonmal \ nicht als Delimiter sondern man muss / nehmen.

EDIT:
1
/.*[.]txt|png|jpg/i
korrigierter Regex (getestet)

alt Re: PHP Problem

Icereed
User Off Offline

Zitieren
Hmmmm...
bei mir funzt er nicht >.<
Gugg mal
1
2
$verzeichnis_relativ="images";
$filename = glob("$verzeichnis_relativ//.*[.]txt|png|jpg/i");

alt Re: PHP Problem

jeepohahyo
User Off Offline

Zitieren
Das Verzeichnis muss natürlich in den Delimitern stehen.

1
2
$verzeichnis_relativ="images";
$filename = glob('#'.$verzeichnis_relativ.'/.*[.][txt|jpg|png]#i');

aber ich glaube, da hilft stealth besser mal weiter, du merkst sicherlich, dass ich nicht so gut bei Regexen bin

alt Re: PHP Problem

Icereed
User Off Offline

Zitieren
Da funzt nix
Ich habs selber gelöst

1
2
3
4
5
6
7
8
9
10
11
12
13
$verzeichnis_relativ="images";

	$file_path="$verzeichnis_relativ/*";
	$filename=array_merge(
	
	glob("$file_path.gif"),
	glob("$file_path.PNG"),
	glob("$file_path.png"),
	glob("$file_path.GIF"),
	glob("$file_path.jpg"),
	glob("$file_path.JPG"),
	glob("$file_path.jpeg"),
	glob("$file_path.JPEG"));
Nix mit Regex^_^
Deswegen gings nit^_^

alt Re: PHP Problem

jeepohahyo
User Off Offline

Zitieren
Wäre aber auch gegangen, nur war eben der Regex falsch, ein normaler Text ist nämlich auch ein Regex, nur eben ein komplett festgelegter, der nur noch einen Begriff matcht

Aber wenn es geht ist es ja egal, sind ja nur ein paar Zeilen Code mehr

alt Re: PHP Problem

stealth
User Off Offline

Zitieren
Ich glaube, das ist gar kein Regex, den man glob übergibt.
Aber glob("*.{png,PNG,jpg,JPG}") müsste funzen. Das ist Linux-Shell-Style

alt Re: PHP Problem

Icereed
User Off Offline

Zitieren
Geht auch nit...
Zu mindest nit auf meinem XP.

Ich hab ne Funktion gebastelt.
Vielleicht braucht ihr die irgentwann mal.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function getImages($file_path) {

//	In $file_path den Pfad ohne abschliesenden /

	if (!empty($file_path)){

		$file_path="$file_path/*";

	$files=array_merge(glob("$file_path.gif"),
		glob("$file_path.PNG"),
		glob("$file_path.png"),
		glob("$file_path.GIF"),
		glob("$file_path.jpg"),
		glob("$file_path.JPG"),
		glob("$file_path.jpeg"),
		glob("$file_path.JPEG"),
		glob("$file_path.bmp"),
		glob("$file_path.BMP"));

	        sort($files);
		return ($files);
                }
	}
Zum Anfang Vorherige 1 Nächste Zum Anfang
Einloggen, um zu antwortenOff Topic-ÜbersichtForenübersicht