Pereiti prie turinio

PHP chunk_split prideda atsitiktinių tarpų?


Rekomenduojami pranešimai

Sakyčiau įdomi problema, string trumpinant su chunk_split atsiranda neaiškių tarpų. Nepavyko rasti jokio dėsningumo kas kiek simbolių ar kaip tai atsiranda.

 

PHP kodas:

var_dump($value['Content']);
echo chunk_split($value['Content'], 140, "\n");

 

Bet štai var dump rodo:

čia naujienos, tekstas negali

 

O rodomas vietoje, div'e:

čia naujien os, tekstas negali

 

Iš kur tas tarpas? Niekaip nesuprantu... Arba ne ten ieškau. Gal kas turit idėjų?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Taip ir taip. Nors toje vietoje nėra jokio html entity.

 

Nepatarciau chunk_split naudoti tada, nes jis ne tik su html entities nesusidoroja, bet ir multibyte raidemis. Geriau jau pasirasyk/susirask metoda, kuris susidoruotu su tuom, pvz:

function chunk_split_unicode($str, $l = 76, $e = "\r\n") {
   $tmp = array_chunk(
       preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $l);
   $str = "";
   foreach ($tmp as $t) {
       $str .= join("", $t) . $e;
   }
   return $str;
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nepatarciau chunk_split naudoti tada, nes jis ne tik su html entities nesusidoroja, bet ir multibyte raidemis. Geriau jau pasirasyk/susirask metoda, kuris susidoruotu su tuom, pvz:

function chunk_split_unicode($str, $l = 76, $e = "\r\n") {
   $tmp = array_chunk(
       preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $l);
   $str = "";
   foreach ($tmp as $t) {
       $str .= join("", $t) . $e;
   }
   return $str;
}

 

Užtrukau atsakyt, bet dėkoju už funkciją. Viskas veikia. :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dar vienas dalykas, kas tas "//u"?

 

Klausiu nes man dar reikia ją pasikoreguoti. Tekste taip pat gali būti html tag'u ir panašu kad kai kuriais atvejais jie dingsta.

 

// - delimiter

u - nurodo, kad naudot utf-8

 

regex eitu tarp // (/^.-$/), o po delimiter, galima nurodyti ekstra nustatymus, kaip 'u', 'i', 'D' ir pan. (priklausomai nuo kalbos)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...