PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / 4.9.4
WP STAGING – WordPress Backups, Restore, Migration & Clone v4.9.4
4.9.4 4.9.3 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 5 months ago BenchmarkTrait.php 3 years ago BooleanTransientTrait.php 5 years ago DatabaseSearchReplaceTrait.php 1 month ago DbRowsGeneratorTrait.php 4 years ago DebugLogTrait.php 1 year ago DeveloperTimerTrait.php 9 months ago EndOfLinePlaceholderTrait.php 1 year ago EventLoggerTrait.php 2 months ago FileScanToCacheTrait.php 2 days ago FormatTrait.php 1 year ago HttpRequestTrait.php 9 months ago HydrateTrait.php 1 year ago I18nTrait.php 1 year ago IpResolverTrait.php 11 months ago MaintenanceTrait.php 6 months ago MemoryExhaustTrait.php 2 years ago MySQLRowsGeneratorTrait.php 7 months ago NoticesTrait.php 2 days ago PropertyConstructor.php 5 years ago RenameTmpDirectoryTrait.php 6 months ago ResourceTrait.php 5 months ago RestRequestTrait.php 4 months ago RestoreFileExclusionTrait.php 1 year ago SafeFileInfoTrait.php 2 days ago SerializeTrait.php 1 year ago SetTimeLimitTrait.php 2 months ago SlashTrait.php 1 year ago SqlCommentTrait.php 4 months ago TablePrefixValidator.php 4 months ago UrlTrait.php 1 year ago ValueGetterTrait.php 2 years 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