PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.17.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.17.1
4.17.1 4.17.0 4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / third-party / vendor / league / csv / src / RFC4180Field.php
wp-user-avatar / third-party / vendor / league / csv / src Last commit date
AbstractCsv.php 2 months ago ByteSequence.php 2 months ago CannotInsertRecord.php 2 months ago CharsetConverter.php 2 months ago ColumnConsistency.php 2 months ago EncloseField.php 2 months ago EscapeFormula.php 2 months ago Exception.php 2 months ago HTMLConverter.php 2 months ago Info.php 2 months ago InvalidArgument.php 2 months ago MapIterator.php 2 months ago RFC4180Field.php 2 months ago Reader.php 2 months ago ResultSet.php 2 months ago Statement.php 2 months ago Stream.php 2 months ago SyntaxError.php 2 months ago TabularDataReader.php 2 months ago UnableToProcessCsv.php 2 months ago UnavailableFeature.php 2 months ago UnavailableStream.php 2 months ago Writer.php 2 months ago XMLConverter.php 2 months ago functions.php 2 months ago functions_include.php 2 months ago
RFC4180Field.php
150 lines
1 <?php
2
3 /**
4 * League.Csv (https://csv.thephpleague.com)
5 *
6 * (c) Ignace Nyamagana Butera <nyamsprod@gmail.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 declare (strict_types=1);
12 namespace ProfilePressVendor\League\Csv;
13
14 use InvalidArgumentException;
15 use php_user_filter;
16 use function array_map;
17 use function in_array;
18 use function is_string;
19 use function str_replace;
20 use function strcspn;
21 use function stream_bucket_append;
22 use function stream_bucket_make_writeable;
23 use function stream_filter_register;
24 use function stream_get_filters;
25 use function strlen;
26 use const STREAM_FILTER_READ;
27 use const STREAM_FILTER_WRITE;
28 /**
29 * A stream filter to conform the CSV field to RFC4180.
30 *
31 * DEPRECATION WARNING! This class will be removed in the next major point release
32 *
33 * @deprecated since version 9.2.0
34 * @see AbstractCsv::setEscape
35 *
36 * @see https://tools.ietf.org/html/rfc4180#section-2
37 */
38 class RFC4180Field extends php_user_filter
39 {
40 public const FILTERNAME = 'convert.league.csv.rfc4180';
41 /**
42 * The value being search for.
43 *
44 * @var string[]
45 */
46 protected array $search;
47 /**
48 * The replacement value that replace found $search values.
49 *
50 * @var string[]
51 */
52 protected array $replace;
53 /**
54 * Characters that triggers enclosure with PHP fputcsv.
55 *
56 */
57 protected static string $force_enclosure = "\n\r\t ";
58 /**
59 * Static method to add the stream filter to a {@link AbstractCsv} object.
60 */
61 public static function addTo(AbstractCsv $csv, string $whitespace_replace = ''): AbstractCsv
62 {
63 self::register();
64 $params = ['enclosure' => $csv->getEnclosure(), 'escape' => $csv->getEscape(), 'mode' => $csv->getStreamFilterMode()];
65 if ($csv instanceof Writer && '' != $whitespace_replace) {
66 self::addFormatterTo($csv, $whitespace_replace);
67 $params['whitespace_replace'] = $whitespace_replace;
68 }
69 return $csv->addStreamFilter(self::FILTERNAME, $params);
70 }
71 /**
72 * Add a formatter to the {@link Writer} object to format the record
73 * field to avoid enclosure around a field with an empty space.
74 */
75 public static function addFormatterTo(Writer $csv, string $whitespace_replace): Writer
76 {
77 if ('' == $whitespace_replace || strlen($whitespace_replace) != strcspn($whitespace_replace, self::$force_enclosure)) {
78 throw new InvalidArgumentException('The sequence contains a character that enforces enclosure or is a CSV control character or is the empty string.');
79 }
80 $mapper = fn($value) => is_string($value) ? str_replace(' ', $whitespace_replace, $value) : $value;
81 return $csv->addFormatter(fn(array $record): array => array_map($mapper, $record));
82 }
83 /**
84 * Static method to register the class as a stream filter.
85 */
86 public static function register(): void
87 {
88 if (!in_array(self::FILTERNAME, stream_get_filters(), \true)) {
89 stream_filter_register(self::FILTERNAME, self::class);
90 }
91 }
92 /**
93 * Static method to return the stream filter filtername.
94 */
95 public static function getFiltername(): string
96 {
97 return self::FILTERNAME;
98 }
99 /**
100 * @param resource $in
101 * @param resource $out
102 * @param int $consumed
103 * @param bool $closing
104 */
105 public function filter($in, $out, &$consumed, $closing): int
106 {
107 while (null !== $bucket = stream_bucket_make_writeable($in)) {
108 $bucket->data = str_replace($this->search, $this->replace, $bucket->data);
109 $consumed += $bucket->datalen;
110 stream_bucket_append($out, $bucket);
111 }
112 return \PSFS_PASS_ON;
113 }
114 public function onCreate(): bool
115 {
116 if (!$this->isValidParams($this->params)) {
117 return \false;
118 }
119 $this->search = [$this->params['escape'] . $this->params['enclosure']];
120 $this->replace = [$this->params['enclosure'] . $this->params['enclosure']];
121 if (STREAM_FILTER_WRITE != $this->params['mode']) {
122 return \true;
123 }
124 $this->search = [$this->params['escape'] . $this->params['enclosure']];
125 $this->replace = [$this->params['escape'] . $this->params['enclosure'] . $this->params['enclosure']];
126 if ($this->isValidSequence($this->params)) {
127 $this->search[] = $this->params['whitespace_replace'];
128 $this->replace[] = ' ';
129 }
130 return \true;
131 }
132 /**
133 * Validate params property.
134 */
135 protected function isValidParams(array $params): bool
136 {
137 static $mode_list = [STREAM_FILTER_READ => 1, STREAM_FILTER_WRITE => 1];
138 return isset($params['enclosure'], $params['escape'], $params['mode'], $mode_list[$params['mode']]) && 1 == strlen($params['enclosure']) && 1 == strlen($params['escape']);
139 }
140 /**
141 * Is Valid White space replaced sequence.
142 *
143 * @return bool
144 */
145 protected function isValidSequence(array $params)
146 {
147 return isset($params['whitespace_replace']) && strlen($params['whitespace_replace']) == strcspn($params['whitespace_replace'], self::$force_enclosure);
148 }
149 }
150