mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-23 01:27:36 +01:00
Work around fatal error caused by mbstring.func_overload = 2. Props codestyling . fixes #5599 for trunk
git-svn-id: http://svn.automattic.com/wordpress/trunk@8420 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
6830e3395a
commit
07b7e7b7a4
@ -58,21 +58,39 @@ class StringReader {
|
||||
function StringReader($str='') {
|
||||
$this->_str = $str;
|
||||
$this->_pos = 0;
|
||||
// If string functions are overloaded, we need to use the mb versions
|
||||
$this->is_overloaded = ((ini_get("mbstring.func_overload") & 2) != 0) && function_exists('mb_substr');
|
||||
}
|
||||
|
||||
function _substr($string, $start, $length) {
|
||||
if ($this->is_overloaded) {
|
||||
return mb_substr($string,$start,$length,'ascii');
|
||||
} else {
|
||||
return substr($string,$start,$length);
|
||||
}
|
||||
}
|
||||
|
||||
function _strlen($string) {
|
||||
if ($this->is_overloaded) {
|
||||
return mb_strlen($string,'ascii');
|
||||
} else {
|
||||
return strlen($string);
|
||||
}
|
||||
}
|
||||
|
||||
function read($bytes) {
|
||||
$data = substr($this->_str, $this->_pos, $bytes);
|
||||
$data = $this->_substr($this->_str, $this->_pos, $bytes);
|
||||
$this->_pos += $bytes;
|
||||
if (strlen($this->_str)<$this->_pos)
|
||||
$this->_pos = strlen($this->_str);
|
||||
if ($this->_strlen($this->_str)<$this->_pos)
|
||||
$this->_pos = $this->_strlen($this->_str);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
function seekto($pos) {
|
||||
$this->_pos = $pos;
|
||||
if (strlen($this->_str)<$this->_pos)
|
||||
$this->_pos = strlen($this->_str);
|
||||
if ($this->_strlen($this->_str)<$this->_pos)
|
||||
$this->_pos = $this->_strlen($this->_str);
|
||||
return $this->_pos;
|
||||
}
|
||||
|
||||
@ -81,9 +99,8 @@ class StringReader {
|
||||
}
|
||||
|
||||
function length() {
|
||||
return strlen($this->_str);
|
||||
return $this->_strlen($this->_str);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -149,17 +166,18 @@ class FileReader {
|
||||
// over it (it assumes knowledge of StringReader internals)
|
||||
class CachedFileReader extends StringReader {
|
||||
function CachedFileReader($filename) {
|
||||
parent::StringReader();
|
||||
|
||||
if (file_exists($filename)) {
|
||||
|
||||
$length=filesize($filename);
|
||||
$fd = fopen($filename,'rb');
|
||||
|
||||
if (!$fd) {
|
||||
$this->error = 3; // Cannot read file, probably permissions
|
||||
return false;
|
||||
$this->error = 3; // Cannot read file, probably permissions
|
||||
return false;
|
||||
}
|
||||
$this->_str = fread($fd, $length);
|
||||
$this->_pos = 0;
|
||||
fclose($fd);
|
||||
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user