File manager - Edit - /home/webapp69.cm.in.th/u69319090033/Shop/myshop ใหม่/tools_backup/analyze_deep.php
Back
<?php /** * Detailed analysis of the mojibake pattern in app.js * Looking at line 12: "ชกฒข ชฒขเนญ" * Hex: e0b88ae0b881c28ae0b892e0b882 20 e0b88ae0b892e0b882c28ae0b980e0b899c289e0b88dc29b * * Let's break it down character by character */ $content = file_get_contents('app.js'); $lines = explode("\n", $content); // Line 12 (index 11) $line = $lines[11]; echo "=== Line 12 analysis ===\n"; echo "Content: " . trim($line) . "\n\n"; // Extract just the name part // Find the name between quotes after name: " preg_match('/name:\s*"([^"]+)"/', $line, $m); if ($m) { $name = $m[1]; echo "Extracted name: $name\n"; echo "Hex: " . bin2hex($name) . "\n"; echo "Length (bytes): " . strlen($name) . "\n"; echo "Length (chars): " . mb_strlen($name, 'UTF-8') . "\n\n"; echo "Character by character:\n"; $pos = 0; $charNum = 0; while ($pos < strlen($name)) { $byte = ord($name[$pos]); $charNum++; if ($byte < 0x80) { // ASCII $char = $name[$pos]; $hex = sprintf('%02X', $byte); $cp = $byte; echo " Char $charNum: '$char' (U+" . sprintf('%04X', $cp) . ") hex=$hex [ASCII]\n"; $pos++; } elseif (($byte & 0xE0) == 0xC0) { // 2-byte UTF-8 $char = substr($name, $pos, 2); $hex = bin2hex($char); $cp = mb_ord($char, 'UTF-8'); echo " Char $charNum: '" . $char . "' (U+" . sprintf('%04X', $cp) . ") hex=$hex [2-byte UTF-8]\n"; $pos += 2; } elseif (($byte & 0xF0) == 0xE0) { // 3-byte UTF-8 $char = substr($name, $pos, 3); $hex = bin2hex($char); $cp = mb_ord($char, 'UTF-8'); echo " Char $charNum: '" . $char . "' (U+" . sprintf('%04X', $cp) . ") hex=$hex [3-byte UTF-8]\n"; $pos += 3; } elseif (($byte & 0xF8) == 0xF0) { // 4-byte UTF-8 $char = substr($name, $pos, 4); $hex = bin2hex($char); $cp = mb_ord($char, 'UTF-8'); echo " Char $charNum: '" . $char . "' (U+" . sprintf('%04X', $cp) . ") hex=$hex [4-byte UTF-8]\n"; $pos += 4; } else { echo " Char $charNum: INVALID byte " . sprintf('%02X', $byte) . "\n"; $pos++; } } } // Line 32 (index 31) - category name echo "\n=== Line 32 analysis ===\n"; $line32 = $lines[31]; preg_match("/name:\s*'([^']+)'/", $line32, $m32); if ($m32) { $catName = $m32[1]; echo "Extracted category name: $catName\n"; echo "Hex: " . bin2hex($catName) . "\n\n"; echo "Character by character:\n"; $pos = 0; $charNum = 0; while ($pos < strlen($catName)) { $byte = ord($catName[$pos]); $charNum++; if ($byte < 0x80) { $char = $catName[$pos]; $cp = $byte; echo " Char $charNum: '$char' (U+" . sprintf('%04X', $cp) . ") [ASCII]\n"; $pos++; } elseif (($byte & 0xE0) == 0xC0) { $char = substr($catName, $pos, 2); $hex = bin2hex($char); $cp = mb_ord($char, 'UTF-8'); echo " Char $charNum: '" . $char . "' (U+" . sprintf('%04X', $cp) . ") hex=$hex [2-byte, maps to byte " . sprintf('0x%02X', $cp) . "]\n"; $pos += 2; } elseif (($byte & 0xF0) == 0xE0) { $char = substr($catName, $pos, 3); $hex = bin2hex($char); $cp = mb_ord($char, 'UTF-8'); echo " Char $charNum: '" . $char . "' (U+" . sprintf('%04X', $cp) . ") hex=$hex [3-byte Thai]\n"; $pos += 3; } else { echo " Char $charNum: byte " . sprintf('%02X', $byte) . "\n"; $pos++; } } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.45 |
proxy
|
phpinfo
|
Settings