message: Compatible with phar
diff: @@ -945,17 +945,24 @@ static php_stream *stream_opener(php_stream_wrapper *wrapper, const char *path,
  {
  return NULL;
  }
  - /**
  - * include file, cannot use async-io
  - */
  - if (options & STREAM_OPEN_FOR_INCLUDE)
  +
  + /** phar_open_archive_fp, cannot use async-io */
  + if ((options & (IGNORE_URL | STREAM_MUST_SEEK)) && SW_STREQ(mode, strlen(mode), "rb"))
  + {
  + size_t path_len = strlen(path);
  + size_t phar_len = sizeof(".phar") - 1;
  + if (path_len > phar_len && memcmp(path + path_len - phar_len, ".phar", phar_len) == 0)
  {
  return php_stream_fopen_rel(path, mode, opened_path, options);
  }
  - else
  + }
  + /** include file, cannot use async-io */
  + if (options & STREAM_OPEN_FOR_INCLUDE)
  {
  - return stream_fopen_rel(path, mode, opened_path, options STREAMS_REL_CC);
  + return php_stream_fopen_rel(path, mode, opened_path, options);
  }
  +
  + return stream_fopen_rel(path, mode, opened_path, options STREAMS_REL_CC);
  }
  static int php_plain_files_url_stater(php_stream_wrapper *wrapper, const char *url, int flags, php_stream_statbuf *ssb, php_stream_context *context)
  