PHP: pašalinkite nepertraukiamus simbolius
Interneto agentūra » Skaitmeninės naujienos » PHP: pašalinkite nepertraukiamus simbolius

PHP: pašalinkite nepertraukiamus simbolius

Prieš kurį laiką parašiau straipsnį, kuriame paaiškinau ir pateikiau sprendimą, kaip apriboti kodavimo klaidas. Taip pat rašau šį įrašą, kad užbaigčiau savo pirmąjį sprendimą. Prisimenu savo problemą. Apdorojant masinius duomenis iš failų, kurie gali būti kelių tipų (CSV, XLS ir kt.), mes reguliariai susiduriame su kodavimo ir nesulaužytų simbolių problemomis.

Kodavimo problema

Norėdami išspręsti mūsų kodavimo problemas, iš pradžių paskelbiau sprendimą, kurį sudaro mūsų simbolių eilučių perkodavimas. Štai mano sprendimas.

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

Pašalinkite nepertraukiamus ir nematomus simbolius

Tai paskutinė klaida, kurią padariau: pamiršau apdoroti visus simbolius ir surūšiuoti. ASCII lentelėje yra simbolių, kurie nebėra naudingi. Scenarijus, kurį įdėjau į Gists formą, leidžia apdoroti simbolį po simbolio ir pašalinti simbolius, kurių kodas mažesnis nei 32 ir kurie nėra matomi ir rodomi simboliai.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
gc_disable();
$turinys = file_get_contents("db.csv");
if ($turinys === klaidingas) {
praleisti "KLAIDA: nepavyko nuskaityti failo.";
mirti();
}
forumas($i = 0; $i < strlen($turinys); $i++) {
$ascii = ord($turinys[$i]);
if (($ascii 32 or $asci > 126) ir $asci != 10) {
$turinys[$i] = "?";
}
}
if (file_put_contents("naujas.csv", $turinys) === klaidingas) {
praleisti "KLAIDA: neįmanoma parašyti naujo failo.";
}

Tikiuosi, kad laikydamiesi šių dviejų atsargumo priemonių galite, kaip ir aš, apriboti failų analizės klaidas.

★ ★ ★ ★ ★