Ef% bb% BF% c2% A0 -), hogy ez a karakter és hogyan távolítsa el őket a url verem túlcsordulás az orosz

Kérem, segítsen megoldani.

Az első ilyen üres string lehet az eredmény var_dum = string (3): „”.

Más magyarázat Unicode I znayu.Pohodu ezeket (utf-8) és láthatatlan karakterek.

A legegyszerűbb lehetőség

De milyen jól, így nem vagyok biztos

Ha ez a helyzet, akkor meg kell vizsgálni, hogy ez lehet a tér alatt a különböző kódolási más és hogyan tisztítsák meg a húr belőle?

7-bites ASCII?

Ha hirtelen 1963-ban, és csak szeretné használni a nyomtatható karakterek ASCII 7 bites, csak akkor kell eltávolítani az összes karakter a tartományban 0-31 és kódok 127-255:

8 bites kiterjesztett ASCII?

1963-ban, ha nem tetszik, és elmozdítja a nyolcvanas és szembesülnek a ASCII 8 bites, amelyben a karakterek hétköznapi 128-255, megjelenik szimbólumok. Ezután már csak be kell állítani a kissé csere szöveget és a karakterek törléséhez 0-31 és 127:

Üdvözöljük a 21. században! Ha a string karakterlánc UTF-8, akkor kell használni a módosító \ u:

Egyszerűen távolítsa el a szimbólumokat 0-31 és 127. Ez a kialakítás működne mindkettőt, és a 8-bites ASCII UTF-8, mivel a második egy részhalmaza az első, és mindketten ugyanabban a tartományban a vezérlő karaktereket. Őszintén szólva, az ilyen szerkezetnek nélkül is működik / u. de azt, hogy az élet könnyebb, ha kell törölni, és mi vagy más szimbólumok.

Ha ön foglalkozik az Unicode következik, hogy olyan sok nem nyomtatható karakterek. de vegyük az egyik leggyakrabban használható ,: nem törhető szóköz (U + 00A0)

Összhangban az UTF-8, akkor is képviselteti magát 0xC2A0. Ennek megfelelően meg kell keresni, és törölje a karaktersorozat, de ha használja a módosító / u. akkor egyszerűen adja meg \ xA0:

Bónusz: mi van, ha str_replace?

preg_replace rendkívül hatékony, de ha kell feldolgozni nagy mennyiségű szöveget, termelékenyebb használni str_replace feltüntetve a tömb karakterek:

Szemléletesen úgy tűnik, hogy ez a megközelítés működni fog sokkal gyorsabb, de most tesztek. Hozzon létre egy sor vizsgálati vonalak különböző hosszúságú és tartalmát, és ellenőrizze a sebesség (használt PHP 7.0.12):

A méréseket 10.000 ismétléseket. Ez nagyon érdekes, hogy nézd meg a relatív különbségeket. Vonósokra maximum 512 karakter jelentős a különbözet ​​nyer preg_replace. A különbség 1-8kb leveled.

Érdekes eredmény, nem? De semmiképpen nem hagyatkozhat kizárólag én tesztek, mint a konkrét adatok minden pontosan az ellenkezője.

Kapcsolódó cikkek