PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.9.2
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.9.2
4.9.2 4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / Framework / Traits / SqlCommentTrait.php
wp-staging / Framework / Traits Last commit date
ApplyFiltersTrait.php 2 months ago ArrayableTrait.php 7 months ago BatchSizeCalculateTrait.php 7 months ago BearerTokenTrait.php 4 months ago BenchmarkTrait.php 2 years ago BooleanTransientTrait.php 5 years ago DatabaseSearchReplaceTrait.php 2 weeks ago DbRowsGeneratorTrait.php 3 years ago DebugLogTrait.php 1 year ago DeveloperTimerTrait.php 9 months ago EndOfLinePlaceholderTrait.php 1 year ago EventLoggerTrait.php 1 month ago FileScanToCacheTrait.php 10 months ago FormatTrait.php 11 months ago HttpRequestTrait.php 9 months ago HydrateTrait.php 1 year ago I18nTrait.php 1 year ago IpResolverTrait.php 10 months ago MaintenanceTrait.php 5 months ago MemoryExhaustTrait.php 2 years ago MySQLRowsGeneratorTrait.php 7 months ago NoticesTrait.php 1 day ago PropertyConstructor.php 5 years ago RenameTmpDirectoryTrait.php 5 months ago ResourceTrait.php 4 months ago RestRequestTrait.php 3 months ago RestoreFileExclusionTrait.php 1 year ago SerializeTrait.php 1 year ago SetTimeLimitTrait.php 1 month ago SlashTrait.php 1 year ago SqlCommentTrait.php 3 months ago TablePrefixValidator.php 3 months ago UrlTrait.php 1 year ago ValueGetterTrait.php 1 year ago WindowsOsTrait.php 1 year ago
SqlCommentTrait.php
50 lines
1 <?php
2
3 namespace WPStaging\Framework\Traits;
4
5 /**
6 * Provides helpers to identify SQL lines during database file extraction.
7 * Used to filter out non-SQL content such as backup index data from extracted SQL files.
8 *
9 * Also used in wpstg-restore standalone tool (src/wpstg-restore/src/classes/Extractor.php).
10 */
11 trait SqlCommentTrait
12 {
13 /**
14 * Check if a line is a SQL comment or empty/whitespace-only.
15 */
16 protected function isSqlCommentOrEmpty(string $line): bool
17 {
18 $trimmed = trim($line);
19 if ($trimmed === '' || $this->isLineBreakOnly($trimmed)) {
20 return true;
21 }
22
23 $first2Chars = substr($trimmed, 0, 2);
24 return $first2Chars === '--' || strpos($trimmed, '#') === 0 || $first2Chars === '/*';
25 }
26
27 /**
28 * Check if a line is a valid SQL statement (ends with semicolon).
29 */
30 protected function isSqlStatement(string $line): bool
31 {
32 $trimmed = trim($line);
33 return $trimmed !== '' && substr($trimmed, -1) === ';';
34 }
35
36 /**
37 * Check if a line is valid SQL content (statement, comment, or empty).
38 * Used to filter out backup index data from extracted database files.
39 */
40 protected function isSqlContent(string $line): bool
41 {
42 return $this->isSqlCommentOrEmpty($line) || $this->isSqlStatement($line);
43 }
44
45 private function isLineBreakOnly(string $string): bool
46 {
47 return empty($string) || in_array($string, ["\r", "\n", "\r\n", "\n\r", chr(13), chr(10), PHP_EOL]);
48 }
49 }
50