为什么协议里面不能用strpos或者子串的index?

Cd_binas

取不到$buffer变量里面子串的位置,求解惑

2523 3 0
3个回答

damao

肯定是自己搞错了,自己打印下数据看看吧。
你都没给出$buffer self::Endsymbol是什么,你让大家怎么给你看?

Cd_binas
<?php

namespace Workerman\Protocols;

use Workerman\Connection\TcpConnection;

class Msg
{
    public static $EndSymbol = '__end__';

    public static function input($buffer, TcpConnection $connection)
    {
        if (strlen($buffer) >= TcpConnection::$maxPackageSize) {
            $connection->close();
            return 0;
        }
        $pos = strpos($buffer, self::$EndSymbol);
        if ($pos === false) {
            return 0;
        }
        return $pos + 1;
    }

    /**
     * Encode.
     *
     * @param string $buffer
     * @return string
     */
    public static function encode($buffer)
    {

        return $buffer . self::$EndSymbol;
    }

    /**
     * Decode.
     *
     * @param string $buffer
     * @return string
     */
    public static function decode($buffer)
    {
        return substr($buffer, 0, strpos($buffer, self::$EndSymbol));
    }
}
  • 暂无评论
Cd_binas

找到问题了!input的原因。此问题作废!

  • 暂无评论
年代过于久远,无法发表回答
🔝