Penggunaan fungsi GLOB pada PHP

larutan

Fungsi PHP GLOB: dapatkan dan ubah hasilnya (PHP function GLOB: get and modify the results)

I'm trying to import many xml files that I do not know the name.  I use this code:

foreach(glob('OLD/*.xml') as $file) {
$url=  basename($file) . ', ';
$all_urls = array($url);
foreach ($all_urls as $url) {
    $xml = simplexml_load_file($url);

I have a lot of files like agency.xmlannunci_324.xmlannunci_321.xml, ecc...

I only need the files that begin for annunci and end .xml. I also need to delete last value's comma and put it in the last foreach. how can i do it? 


larutan

larutan 1:

I think you can check if name contains annunci with strstr function (documentation here)

if(strstr($file, 'annunci')
{
    //we found a file with name we are interessed in.

Now you can build directly your array without caring about commas

$all_urls = array();
foreach(glob('OLD/*.xml') as $file) 
{
   if(strstr($file, 'annunci')
   {
       $all_urls[] = array(basename($file));
   }
}

This way we have all_urls as array of all the files starting with annunci and you can loop in it to simple_load them all.

(by Marcello Storit、Fabio)

larutan

  1. PHP function GLOB: get and modify the results (CC BY‑SA 3.0/4.0)

#PHP

Penggunaan fungsi GLOB pada PHP

Beberapa waktu lalu, kita telah membahas bagaimana cara export file antar komputer dengan menggunakan FTP pada PHP. Kali ini kita akan membuatnya menjadi otomatis tanpa harus menuliskan nama file nya terlebih dulu. Jadi, kita hanya menuliskan path lokasi file saja dan membacanya secara otomatis file yang ada di dalamnya.

Ok, langsung saja kita coba cara membuatnya. Pertama, kita tentukan dahulu lokasi path yang akan kita gunakan. Kemudian apakah hanya file tertentu saja ataukah semua file. Berikut adalah codenya :

 
	$path = '/var/www/file/';
	$files = glob("*.jpg");
	foreach($files as $filename){
		echo $filename;
	}

Sedikit kita bahas code di atas.
1. $path adalah lokasi file berada sesuai dengan lokasi yang kamu inginkan.
2. $files adalah variabel untuk mendefinisikan fungsi globe. Fungsi ini berfungsi untuk membaca file tergantung pola yang ditentukan.
3. Tanda * untuk membuat suat pola. Jika ditulis, maka berarti pencarian semua karakter. Semisal *.jpg adalah pencarian semua file dengan extensi jpg. Apabila ditulis dengan code *.*, makapencarian semua file dan semua extensi.
4. foreach berfungsi untuk membuat perulangan sesuai dengan jumlah file dan memecahnya menjadi $filename.
5. $filename adalah parameter untuk menampilkan nama file yang telah didapatkan.

Dengan menggunakan code di atas, kita bisa melakukan export file ke server lain dengan menggunakan FTP tanpa harus menuliskan satu persatu file yang akan dikirim. Namun jika kamu tetap mau export nama file tertentu, kamu tetap harus mendefinisakan nama file tersebut.

Nah, demikianlah bagaimana cara Membaca Nama File dengan Glob pada PHP. Semoga dapat bermanfaat.

❮ PHP Filesystem Reference

Example

Return an array of filenames or directories that matches the specified pattern:

<?php
print_r(glob("*.txt"));
?>

The output of the code above could be:

Array (
  [0] => target.txt
  [1] => source.txt
  [2] => test.txt
  [3] => test2.txt
)



Definition and Usage

The glob() function returns an array of filenames or directories matching a specified pattern.

Syntax

Parameter Values

ParameterDescription
pattern Required. Specifies the pattern to search for
flags Optional. Specifies special settings.

Possible values:

  • GLOB_MARK - Adds a slash to each item returned
  • GLOB_NOSORT - Return files as they appear in the directory (unsorted)
  • GLOB_NOCHECK - Returns the search pattern if no match were found
  • GLOB_NOESCAPE - Backslashes do not quote metacharacters
  • GLOB_BRACE - Expands {a,b,c} to match 'a', 'b', or 'c'
  • GLOB_ONLYDIR - Return only directories which match the pattern
  • GLOB_ERR - (added in PHP 5.1) Stop on errors (errors are ignored by default)


Technical Details

Return Value:An array of files/directories that matches the pattern, FALSE on failure
PHP Version:4.3+
PHP Changelog:PHP 5.1: GLOB_ERR value added to the flags parameter

More Examples

Example

Return an array of filenames or directories that matches the specified pattern:

<?php
print_r(glob("*.*"));
?>

The output of the code above could be:

Array (
  [0] => contacts.csv
  [1] => default.php
  [2] => target.txt
  [3] => source.txt
  [4] => tem1.tmp
  [5] => test.htm
  [6] => test.ini
  [7] => test.php
  [8] => test.txt
  [9] => test2.txt
)



❮ PHP Filesystem Reference