PluginProbe ʕ •ᴥ•ʔ
WP All Import – Drag & Drop Import for CSV, XML, Excel & Google Sheets / trunk
WP All Import – Drag & Drop Import for CSV, XML, Excel & Google Sheets vtrunk
4.1.1 3.9.5 3.9.6 4.0.0 4.0.1 4.1.0 trunk 2.12 2.13 2.14 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 3.4.9 3.5.0 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.6.9 3.7.0 3.7.1 3.7.2 3.7.3 3.7.3-beta-1.0 3.7.4 3.7.4-beta-1.0 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4
wp-all-import / classes / XmlStreamReader / prewk / xml-string-streamer / src / XmlStringStreamer / Stream / File.php
wp-all-import / classes / XmlStreamReader / prewk / xml-string-streamer / src / XmlStringStreamer / Stream Last commit date
File.php 1 month ago Stdin.php 10 years ago
File.php
57 lines
1 <?php
2 // phpcs:disable WordPress.WP.AlternativeFunctions.file_system_operations_fopen
3 // phpcs:disable WordPress.WP.AlternativeFunctions.file_system_operations_fread
4 // phpcs:disable WordPress.WP.AlternativeFunctions.file_system_operations_fclose
5 namespace Prewk\XmlStringStreamer\Stream;
6
7 use Prewk\XmlStringStreamer\StreamInterface;
8
9 class File implements StreamInterface
10 {
11 private $handle;
12 private $readBytes = 0;
13 private $chunkSize;
14 private $chunkCallback;
15
16 public function __construct($mixed, $chunkSize = 16384, $chunkCallback = null)
17 {
18 if (is_string($mixed)) {
19 // Treat as filename
20 if (!file_exists($mixed)) {
21 throw new \Exception(esc_html("File '$mixed' doesn't exist"));
22 }
23 $this->handle = fopen($mixed, "rb");
24 } else if (get_resource_type($mixed) == "stream") {
25 // Treat as file handle
26 $this->handle = $mixed;
27 } else {
28 throw new \Exception(esc_html("First argument must be either a filename or a file handle"));
29 }
30
31 if ($this->handle === false) {
32 throw new \Exception("Couldn't create file handle");
33 }
34
35 $this->chunkSize = $chunkSize;
36 $this->chunkCallback = $chunkCallback;
37 }
38
39 public function getChunk()
40 {
41 if (is_resource($this->handle) && !feof($this->handle)) {
42 $buffer = fread($this->handle, $this->chunkSize);
43 $this->readBytes += strlen($buffer);
44
45 if (is_callable($this->chunkCallback)) {
46 call_user_func_array($this->chunkCallback, array($buffer, $this->readBytes));
47 }
48
49 return $buffer;
50 } else if (is_resource($this->handle)) {
51 fclose($this->handle);
52 return false;
53 } else {
54 return false;
55 }
56 }
57 }