Syntaxis:
De syntaxis van de functie glob() wordt hieronder gegeven:. Deze functie kan twee argumenten aannemen:. Het eerste argument neemt de patroonwaarde die zal worden gebruikt om het bestand en de map te doorzoeken. Het tweede argument is optioneel en wordt gebruikt om de uitvoer op verschillende manieren te genereren. De algemene symbolen die worden gebruikt om het patroon te definiëren en de verschillende soorten vlaggen die in het tweede argument van deze functie kunnen worden gebruikt, worden hieronder beschreven.
array glob ( string $patroon [, int $flags = 0] )Meest gebruikte symbolen in het patroon
Patroon | Doel |
---|---|
? | Het wordt gebruikt om exact één teken (willekeurig) te matchen. |
* | Het wordt gebruikt om nul of meer tekens te matchen. |
\ | Het wordt gebruikt om te ontsnappen aan de tekens wanneer de GLOB_NOESCAPE-vlag wordt gebruikt. |
[… ] | Het wordt gebruikt om het bereik van tekens te matchen. |
Waarden markeren
De volgende vlagwaarden kunnen worden gebruikt in het optionele argument van de functie glob().
Waarde | Doel |
---|---|
GLOB_MARK | Het voegt een schuine streep toe aan elk geretourneerd item. |
GLOB_NOSORT | Het retourneert ongesorteerde bestanden die in de map verschijnen. |
GLOB_NOCHECK | Het geeft het zoekpatroon terug als er geen overeenkomst is gevonden. |
GLOB_NOESCAPE | Het gebruikt backslashes en citeert geen metatekens. |
GLOB_BRACE | Het breidt de karakters van een groep uit om te matchen. |
GLOB_ONLYDIR | Het retourneert de directorylijst die alleen overeenkomt met het patroon. |
GLOB_ERR | Het wordt gebruikt om te stoppen wanneer de fout optreedt. |
Voorbeeld 1: Lees alle PHP-bestanden met het '*'-symbool
Het volgende voorbeeld toont de manier om alle PHP-bestanden van de huidige locatie te doorzoeken met behulp van de '*.php' patroon. Maak een PHP-bestand met het volgende script:.
Het patroon doorzoekt elke bestandsnaam met de extensie PHP. De geretourneerde waarde van de functie is een array die wordt afgedrukt als uitvoer.
// Print de lijst met tekstbestanden van de huidige directoryprint_r(glob("*.php"));
?>
Uitgang:
De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:. Het laat zien dat er vijf PHP-bestanden bestaan op de huidige locatie.
Voorbeeld 2: Lees specifieke tekstbestanden met de '?' symbool
Het volgende voorbeeld zoekt in alle tekstbestanden die een bestandsnaam van vijf tekens bevatten. Maak een PHP-bestand met het volgende script:.
De '?????.tekst' patroon wordt gebruikt om het tekstbestand te zoeken met de bestandsnaam van vijf tekens. De uitvoer van de functie glob() is een array die is opgeslagen in de variabele, $bestanden. De waarden van deze variabele worden afgedrukt met behulp van de voorbode lus.
//Lees specifieke tekstbestandsnamen van de huidige locatie$files = glob("?????.tekst");
//Druk de bestandsnamen af
foreach ($ bestanden als $ bestand)
echo "" . $bestand. "
";
?>
Uitgang:
De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:. Het laat zien dat er twee tekstbestanden bestaan op de huidige locatie volgens het patroon.
Voorbeeld 3: Lees alle bestanden van de huidige locatie met behulp van de lus
Het volgende voorbeeld doorzoekt alle soorten bestanden vanaf de huidige locatie en drukt de bestandsnamen in elke regel af met behulp van de lus. '*.*' patroon wordt gebruikt in de glob()-functie om elk bestand van elk type te zoeken. De geretourneerde waarde van de functie wordt opgeslagen in de array, $bestanden. Vervolgens wordt het totale aantal bestanden geteld vanaf het zoekresultaat. foreach lus wordt gebruikt om de waarden van de array in elke regel af te drukken.
//Lees alle bestandsnamen van de huidige locatie$files = glob("*.*");
// Tel het totale aantal bestanden
$count = count($bestanden);
echo "Totaal aantal bestanden = $tel
";
echo "De bestanden zijn:
";
//Druk de bestandsnamen af
foreach ($bestanden als $bestand)
echo "" . $bestand. "
";
?>
Uitgang:
De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:. Het laat zien dat er zes bestanden bestaan op de huidige locatie.
Voorbeeld 4: Zoekbestand dat begint met het specifieke teken
Het volgende voorbeeld zoekt in het PHP-bestand dat begint met het teken 'g'. Maak een PHP-bestand met het volgende script:.
'g*.php' wordt gebruikt als het patroon voor het doorzoeken van de bestanden. Net als in de vorige voorbeelden wordt de geretourneerde waarde van de functie glob() opgeslagen in een array die later wordt afgedrukt met een foreach lus.
// Zoekbestand begint met 'g'$files = glob("g*.php");
// Druk de bestanden af
foreach ($bestanden als $bestand)
echo $bestand. "
";
?>
Uitgang:
De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:. Het laat zien dat er vier PHP-bestanden bestaan op de huidige locatie waar de bestanden beginnen met het teken 'g'.
Voorbeeld 5: Alle bestanden en mappen lezen
Het patroon dat in alle voorgaande voorbeelden werd gebruikt, doorzocht alleen de bestanden van de huidige locatie. Het volgende voorbeeld toont de manier om alle bestanden en mappen van de huidige locatie te doorzoeken. Maak een PHP-bestand met het volgende script:.
'*' wordt gebruikt als een patroon in de glob()-functie om alle bestanden en mappen te doorzoeken. De geretourneerde waarden van de functie worden opgeslagen in een array die later wordt afgedrukt.
//Lees alle bestanden en mappen van de huidige locatie$files = glob("*");
// Druk de bestanden en mappen af
foreach ($bestanden als $bestand)
echo $bestand. "
";
?>
Uitgang:
De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:. Het laat zien dat er vijf PHP-bestanden, drie tekstbestanden en twee mappen bestaan op de huidige locatie.
Conclusie
De methoden voor het zoeken naar een bestand of map worden in deze tutorial getoond met behulp van de glob()-functie van PHP. Het bestand kan worden doorzocht op basis van de extensie, het startteken of door het totale aantal tekens op te geven. Hopelijk is het gebruik van de glob()-functie in PHP duidelijker en gemakkelijker voor de lezers na het oefenen van de voorbeelden van deze tutorial.