【问题标题】:What is PHP for C# ReadBytes(stream langth)?C# ReadBytes(流长度)的 PHP 是什么?
【发布时间】:2010-06-18 14:09:40
【问题描述】:

什么是 C# 的 PHP(假设我们打开一些本地(在服务器上)文件而不是 OpenFileDialog

        private const int HEADER_LENGTH = 13;
        stream = File.OpenRead(openFileDialog.FileName);
        header = ReadBytes(stream, HEADER_LENGTH);

下一步我们能否在 PHP 中做类似的事情

    private const byte SIGNATURE1 = 0x46;
    private const byte SIGNATURE2 = 0x4C;
    private const byte SIGNATURE3 = 0x56;
      if ((SIGNATURE1 != header[0]) || (SIGNATURE2 != header[1]) || (SIGNATURE3 != header[2]))
            throw new InvalidDataException("Not a valid FLV file!.");

【问题讨论】:

    标签: c# php byte


    【解决方案1】:

    嗯,我想你正在寻找类似的东西

    $handle = fopen(FILE, 'r');
    if ($handle)
    {
        $head = fread ( $handle , 13 );
        if ($head[0] != chr (0x46)) ...
        ...
    }
    

    当然你可以为这个签名创建常量,但是这样:

    define('SIG1', chr(0x46));
    

    然后您可以正常使用它们:$head[0] == SIG1 等。您可以在定义常量时使用函数,用于常量名称和值。

    【讨论】:

    【解决方案2】:

    使用fopenfread

    $fh = fopen($filename, "r");
    if ($fh) {
        $data = fread($fh, 13);
    }
    

    PHP 支持字符串的 [] 运算符,因此您将能够以与 C# 中基本相同的方式验证签名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-08
      • 2012-06-28
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      相关资源
      最近更新 更多