PHP değişkenin gerçek değeri bulmak

2 Cevap php

Ben bir sekme ayrılmış metin dosyası okuma ve MySQL Veritabanı takarak ile gerçek bir baş ağrısı yaşıyorum.

Sekme ayrılmış metin dosyası bir MS SQL veritabanından (Bence) üretildi ve ben dosyayı okumak ve benim MySQL veritabanında varolan bir tabloya eklemek için basit bir script yazdım.

Ancak, txt dosyasında verileri ile biraz problem var gibi görünüyor. Benim PHP komut dosyası ve ben çıktılarının INSERT deyimleri işlediğinde, alanların her değerlerinin olması gerekenden daha uzundur. Örneğin, ilk alan basit bir iki karakter alfanümerik değeri olmalıdır. Ben (Firefox) Firebug kullanarak INSERT deyimleri, echo eğer, karakterlerin her biri arasında bir siyah elmas bir soru işareti. Ben değerleri var_dump, ben şu olsun:

string(5) "A1" 

Şimdi, bu açıkça bir iki karakter dizesini gösterir, ancak var_dump uzun beş karakter bana söyler!

I () değeri trim, ben olsun tüm ilk karakteri (bu durumda "A") 'dir.

Nasıl diğer karakterler de alabilirsiniz, o bile sadece bunları kaldırmak için? Ayrıca, bu değil, olması gerektiği gibi bir varchar, bir BLOB olarak değerini eklemek için MySQL zorluyor gibi görünüyor.

Simon

UPDATE If I do:

echo mb_detect_encoding($arr[0]);

Ben 'ASCII' bir sonuç almak. Bu, multibyte değil, değil mi?

2 Cevap

Tamam, not defteri TXT dosyasını açarak ve UTF-8 olarak özellikle kaydederek, tüm bu sorunları çözüldü.

Ben hala (belki UNICODE?) Kullanılan hangi kodlama bilmiyorum ama şimdi hepsi halledildi

Bir kodlama sorunu gibi geliyor.

Eğer çoklu bayt güvenli olmayan PHP fonksiyonları üzerinden herhangi dizeleri çalıştırıyor musunuz?

Siz PHP multi byte aware functions bakmak gerekebilir.