PHP: Poista katkeamattomat merkit
Verkkotoimisto » Digitaalisia uutisia » PHP: Poista katkeamattomat merkit

PHP: Poista katkeamattomat merkit

Jokin aika sitten kirjoitin artikkelin, jossa selitin ja tarjosin ratkaisun koodausvirheiden rajoittamiseen. Samaan tapaan kirjoitan tämän viestin täydentääkseni ensimmäisen ratkaisuni. Muistan ongelmani. Käsiteltäessä massadataa tiedostoista, joita voi olla useita tyyppejä (CSV, XLS jne.), kohtaamme säännöllisesti koodausongelmia ja ongelmia rikkoutumattomien merkkien kanssa.

Koodausongelma

Ratkaisin koodausongelmamme alun perin julkaisin ratkaisun, joka koostuu merkkijonojemme uudelleenkoodaamisesta. Tässä on ratkaisuni.

1
mb_convert_encoding($string, "UTF-8", mb_detect_encoding($merkkijono));

Poista rikkoutumattomat ja näkymätön merkit

Tämä on viimeinen tekemäni virhe: unohdin käsitellä kaikki merkit ja lajitella. ASCII-taulukossa on merkkejä, joista ei ole enää mitään hyötyä. Gists-muotoon laittamani skripti mahdollistaa merkki kerrallaan käsittelyn ja merkit, joiden koodi on alle 32 ja jotka eivät ole näkyvissä ja näytettävissä olevia merkkejä, poistamisen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
gc_disable();
$content = file_get_contents("db.csv");
if ($sisältö === väärä) {
kaiku "VIRHE: tiedostoa ei voi lukea.";
kuolla();
}
varten($i = 0; $i < strlen($sisältö); $i++) {
$ascii = järjestys($sisältö[$i]);
if (($ascii 32 or $asci > 126) ja $asci!= 10) {
$sisältö[$i] = "?";
}
}
if (file_put_contents("uusi.csv", $sisältö) === väärä) {
kaiku "VIRHE: uuden tiedoston kirjoittaminen on mahdotonta.";
}

Näillä kahdella varotoimenpiteellä toivon, että voit minun tavoin rajoittaa tiedostojen jäsennysvirheitä.

★ ★ ★ ★ ★