もっと新しい情報
もう一つ面白いものを見つけました。私の find email メソッド (最後の mysql 呼び出し用の電子メール アドレスを収集します) では、メソッドは次のようになります。
protected function setAllByEmail($email) {
$data = array( 'names' => array(), 'phones' => array(), 'emails' => array(), 'orders' => array(), 'requestIDs' => array() );
$this->load->model('cookies/vwrequesthistory');
$araCookies = $this->vwrequesthistory->getByEmail($email);
if (count($araCookies) !=0) {
// filter and run 2 more models against 2 more db's for email addys
}
メソッドの最初の行の後に ANY OF MY NEW CODE OR return $data
を配置すると、奇妙なエンコーディングの問題が発生し始めますが、その古いメソッドをそのままにしておく限り (削除しようとしているモデルを使用しています!)奇妙な ISO エンコーディングなしで問題なく動作します!
最新のアップデートファイナルで小さな違いが見つかりました!
何時間も頭をドキドキさせた後、私は逆に動き始めました。このデータがどのように収集されるかについて少し背景を説明します。最終結果 (ブラウザに表示する必要がある電子メール HTML を含む) は、最終クエリのデータを収集する 3 つの初期クエリの後にクエリされます。CIを使用してこれらの初期クエリを呼び出す3つのphpメソッドがありますload->database->
方法。次に、最後のクエリを呼び出します。これらの関数を使用する私の古い方法では、それぞれがその DB の独立したモデルにアクセスし、必要なものを取得してから、戻り値をフィルター処理しました。私の NEW メソッドでは、各関数は CI の AR を使用して DB を直接呼び出し、結果をフィルタリングします。どちらの方法も同じように機能しますが、方法が異なります。私の新しい問題では、新しい init get phone & get order# メソッドを古い get email メソッドで呼び出すと、すべて問題ないことがわかりました。しかし、新しい get EMAIL メソッドを使用しようとするとすぐに、奇妙なエンコーディングが表示されます。ただし、データの戻り値は、どちらからでもまったく同じようです。
新しいメソッドを割り当ててすぐに偽のデータを返すなど、いくつかの差分テストを実行しましたが、それでも同じ問題が発生します。新しいメソッドを割り当てて、メソッドを完全に空白にしてみましたが、同じ問題です! 新しい方法論を古い方法に移してみましたが、同じ問題です! ラフドラフトとして不十分に書かれた古い方法でのみ機能するようです!
データリターン
OLD
array(5) {
["names"]=>
array(2) {
[0]=>
string(7) "Anon"
[1]=>
string(12) "Anon Anon"
}
["phones"]=>
array(1) {
[0]=>
string(10) "5555555555"
}
["emails"]=>
array(1) {
[0]=>
string(23) "Anon@gmail.com"
}
["orders"]=>
array(1) {
[0]=>
string(5) "987654"
}
["requestIDs"]=>
&array(0) {
}
}
NEW
array(5) {
["names"]=>
array(2) {
[0]=>
string(7) "Anon"
[1]=>
string(12) "Anon Anon"
}
["phones"]=>
array(1) {
[0]=>
string(10) "5555555555"
}
["emails"]=>
array(1) {
[0]=>
string(23) "Anon@gmail.com"
}
["orders"]=>
array(1) {
[0]=>
string(5) "987654"
}
["requestIDs"]=>
array(0) {
}
}
最新のアップデート
- MySQL DB を UTF-8 に設定
- Codeigniter はすべて UTF-8 に設定されています
- CI は UTF-8 エンコーディングをヘッダーにプッシュするように設定されています
- SQL呼び出しは手書きになり、「SETCHAR」と「mysql_set_charset」の両方を使用して結果を変更しようとしました(まだphp 4.? here)
- マスター ビューの <head> に UTF-8 があります
- ajax 呼び出しは UTF-8 のみを使用するように設定されています
負荷のレイアウトは次のとおりです (現時点では)。
masterView->usePHPinBodyToLoadEmailListView->UseAjaxToGetDataToPopulateView
まだ同じ古い問題があります
だから私は数十の答えを見て、グーグルで検索し、ヘッダーの変更、アクセスの変更、ファイルエンコーディングの変更など、私が知っているすべてを試しました。すべての。一日の終わりに、これが私のツールのリストです。
Komodo Edit / Codeigniter / MySQL / jQuery.Ajax メソッド / Google Chrome & FireFox
私の問題:スペースがÂ&nbspおよびその他のISO-8859-1タイプの奇妙なものに置き換えられています
私が観察したこと:(おそらくここでの問題の鍵)
The Data is sent to jQuery.getJSON as `echo(json_encode($data));`
The HTML seemed to parse just fine to the web page in original config,
however the data layout was undesirable as it interfered with other pulls
The Data itself was originally arranged as follows:
array(i) [
0 => array(i) [
'emailID' => 'string',
'emailType' => 'string',
'emailHTML' => 'string', <---- the html pulled!!!
],
1 => [
'emailID' => 'string',
'emailType' => 'string',
'emailHTML' => 'string', <---- the html pulled!!!
],
'initData' => array(i) [ ... ]
]
The New Data Layout: (When the error mentioned began to occur)
array(i) [
'initID' => 'string',
'initEmailAddy' => 'string',
'initPhone' => 'string',
'emailPull' => array(i) [
0 => array(i) [
'emailID' => 'string',
'emailType' => 'string',
'emailHTML' => 'string' <---- the html pulled!!!
]
1 => array(i) [
'emailID' => 'string',
'emailType' => 'string',
'emailHTML' => 'string' <---- the html pulled!!!
]
2 => array(i) [ ... ]
]
]
データ レイアウトを変更せずに、問題を解決することはできますか? もしそうなら、その理由は?
アップデート!
元のデータ構造体に戻しましたが、まだ新しい問題があります! 今、私は本当に迷っています。文字通り、すべてを 0 にリセットしました。新しいフォルダー、新しいファイル、コードをコピーしてテキスト エディターに貼り付け、ずっとエンコーディングに気を配っていました。データベースを含めてすべてが UTF-8 に設定されていますが、それでも同じ ISO 結果が得られます!? HTML には<meta>
タグが含まれ、CI には charset セットがあり、ヘッダー lib を変更してヘッダーに UTF-8 を強制します。想像できることはすべてやったようです.2日前はすべてうまくいきました! 私は本当に正直に今問題を見つけることができません。
HTML ページで PHP を使用してデータを取得すると、問題なく表示されます。ページ上の PHP を使用してコントローラー経由でロードすると、問題なく動作しますが、AJAX 経由でマスター ページにロードすると、突然壊れます。通話にエンコーディングを設定しましたが、まだ何も設定されていません。また、ajax の代わりに PHP 経由でロードしようとしましたが、まだ壊れています。しかし、2 日前、この同じレイアウト (controller->masterpage->loadContent) 内では問題なく動作していました。それ以来、私が変更したのは、呼び出しに送信されるデータを整理する方法だけでした。getJSON