OpenCart Daniel には、さまざまな UTF8 関数を備えた UTF8 ヘルパー ファイルが含まれています。
これが私の質問です...
OpenCart で utf8 ヘルパー関数を使用する場合と、ネイティブ php 関数で utf8 デコードされたコード セグメントをラップする場合の結果の違い (何も見つかりません) は何ですか?
たとえば、OpenCart の検証領域では、次のようなことがよく見られます。
if (utf8_strlen($this->request->post['myvalue']) < 3)
これは、次とまったく同じです。
if (strlen(utf8_decode($this->request->post['myvalue'])) < 3)
などのファイルutf8_strtolower
には追加のヘルパー関数があります。utf8_strpos
単純に使用しない理由:
strtolower (utf8_decode($myvariable))
OpenCart MVC に基づいて新しい CMS フレームワークを構築しているので、ちょっと興味があります。
編集:mb_
新しいクラスを追加します。
これが関数の新しいクラスですmb_
。エラーがないか確認してください。
final class Tester {
public function _strlen ($string) {
return mb_strlen ($string, mb_detect_encoding($string));
}
public function _strpos ($string, $needle, $offset = false) {
if (!$offset):
$data = explode ($needle, $string, 2);
if (count ($data) > 1):
$offset = $this->_strlen ($data[0]);
endif;
endif;
return mb_strpos ($string, $needle, $offset, mb_detect_encoding ($string));
}
public function _strrpos ($string, $needle, $offset = false) {
if (!$offset):
$data = explode ($needle, $string);
if (count ($data) > 1):
array_pop ($data);
$string = join ($needle, $data);
$offset = $this->_strlen ($string);
endif;
endif;
return mb_strrpos ($string, $needle, $offset, mb_detect_encoding ($string));
}
public function _substr ($string, $start, $length = false) {
if (!$length):
$length = $this->_strlen ($string);
endif;
return mb_substr ($string, $start, $length, mb_detect_encoding ($string));
}
public function _strtolower ($string) {
return mb_strtolower ($string, mb_detect_encoding ($string));
}
public function _strtoupper ($string) {
return mb_strtoupper ($string, mb_detect_encoding ($string));
}
public function _array ($data, $exit = true) {
echo "<pre>";
print_r ($data);
echo "</pre>";
if ($exit):
exit;
endif;
}
}
これには、以前ローダー クラスにあった配列テスト関数も含まれます。