PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.14.2
Independent Analytics – WordPress Analytics Plugin v2.14.2
2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / Utils / CSV.php
independent-analytics / IAWP / Utils Last commit date
BladeOne.php 2 years ago CSV.php 9 months ago Calculations.php 2 years ago Currency.php 8 months ago Device.php 1 year ago Device_Cache.php 2 years ago Dir.php 5 months ago Format.php 5 months ago Link_Validator.php 6 months ago Number_Formatter.php 5 months ago Obj.php 6 months ago Request.php 11 months ago Salt.php 1 year ago Security.php 1 year ago Server.php 2 years ago Singleton.php 2 years ago String_Util.php 2 years ago Timezone.php 5 months ago URL.php 6 months ago WP_Async_Request.php 1 year ago
CSV.php
47 lines
1 <?php
2
3 namespace IAWP\Utils;
4
5 use IAWPSCOPED\League\Csv\EscapeFormula;
6 /** @internal */
7 class CSV
8 {
9 private array $header;
10 private array $rows;
11 private EscapeFormula $formatter;
12 /**
13 * @param array $header
14 * @param array[] $rows
15 */
16 public function __construct(array $header, array $rows)
17 {
18 $this->header = $header;
19 $this->rows = $rows;
20 $this->formatter = new EscapeFormula();
21 }
22 public function to_string() : string
23 {
24 $delimiter = ',';
25 $enclosure = '"';
26 $escape_character = '\\';
27 $temporary_file = \fopen('php://memory', 'r+');
28 \fputcsv($temporary_file, $this->header, $delimiter, $enclosure, $escape_character);
29 foreach ($this->rows as $row) {
30 $row = $this->escape_row($row);
31 \fputcsv($temporary_file, $row, $delimiter, $enclosure, $escape_character);
32 }
33 \rewind($temporary_file);
34 return \stream_get_contents($temporary_file);
35 }
36 private function escape_row(array $row) : array
37 {
38 $row = $this->formatter->escapeRecord($row);
39 foreach ($row as &$cell) {
40 if ($cell === "'-") {
41 $cell = '-';
42 }
43 }
44 return $row;
45 }
46 }
47