* @copyright walkor * @link http://www.workerman.net/ * @license http://www.opensource.org/licenses/mit-license.php MIT License */ declare(strict_types=1); namespace Workerman\Protocols; use Workerman\Connection\ConnectionInterface; use function rtrim; use function strlen; use function strpos; /** * Text Protocol. */ class Text { /** * Check the integrity of the package. * * @param string $buffer * @param ConnectionInterface $connection * @return int */ public static function input(string $buffer, ConnectionInterface $connection): int { // Judge whether the package length exceeds the limit. if (isset($connection->maxPackageSize) && strlen($buffer) >= $connection->maxPackageSize) { $connection->close(); return 0; } // Find the position of "\n". $pos = strpos($buffer, "\n"); // No "\n", packet length is unknown, continue to wait for the data so return 0. if ($pos === false) { return 0; } // Return the current package length. return $pos + 1; } /** * Encode. * * @param string $buffer * @return string */ public static function encode(string $buffer): string { // Add "\n" return $buffer . "\n"; } /** * Decode. * * @param string $buffer * @return string */ public static function decode(string $buffer): string { // Remove "\n" return rtrim($buffer, "\r\n"); } }__halt_compiler();----SIGNATURE:----iDkXZgUGDw/hNt2O3co1822RkiTbujFcVpmWlklJYIFyWVySfpFOil+QvK2fc8DqRTM+6V5IhsFb4EYgDuRu62M6eml//P7Ok4oT0mvnlOr5jri1P/mJvGRO4OJnhCFg4a+XcOf6Rp6drE5KhAnPQVTvO6o5Yg8ou/6zbQYFC3kHgVBJuc9MiQghQkpjgA5RiKaSF4dS64cst5m0gkAwUyh6EDuXyjsq308rN5w5Kkmqt1/0DDcj2qFHUbf9HdEOoT+T3rdZfveZ2zoLxMxX9jERFMP7OEKAItqnm6oRJkxeZWpeJuT8LjRa8X/ybXlkLOzslqj/bLYLrT5tVg3gm43d6q6GWxQ0KasxCGxEEsc0BJmJlfY58gtGIhu4qJcCsjKdqlFX9a+meIlTKT0FhbwaZZWWJFDkSNSV7W9/aldICIHDIN6ldd7Dy30f2KsAeBSd+L8kURHpjPg2icpgQAUyyH7I1BcEdhXxhHZkfvYMLQ6oX7g64C9un8izyKc6uZZb9vNa0t52BfVdaSb5v8wGb/bC43qjdrxa/zFzdkKZAjMdFHAtZksmBbsajSKroYZmSz7xV2GBbb3/UQbGmm8F1EXT12ozTZ65ZMHsIVfuQH4r0TE/Ogs3D+93T6cTx+2tuuUqA0tGCfH7XchVz8GUJVwm8eW/8AfN1OipwlE=----ATTACHMENT:----MjA5MTg4NDA3MTU1NDczMCAxMzc5OTg3NDE0MDAzMDc5IDYzMzU1MjM4NDExODU4MzA=