speciālo simbolu attēlošana izmantojot substr un mb_subst

Sākumlapa Forumi Mājas lapu izstrāde Web veidošana un problēmas speciālo simbolu attēlošana izmantojot substr un mb_subst

Tiek skatīts 8 ierakstu – 1 līdz 8 (no 8 kopumā)
  • Autors
    Ieraksti
  • #148983
    mmittz
    Participant

    if (strlen($komentars)<=23) { $komentars1=$komentars; } else{ $komentars1 = substr($komentars,0,23); $komentars1.=’..’; izmantojot mb_substr problēma saglabājas lapas kods darbojas, bet ja 23 zīme ir speciāls simbols piemēram ēāšķļīņč u.c tad tie attēlojas kā šai pārējā daļā viss ir normāli, kā to novērst

    #202202
    Mr.Death
    Participant

    Quote:

    define(‘ENABLE_UTF8_NOMB’,true);

    define(‘ENABLE_UTF8_MB’,false);

    function _mb_strlen($s) {

    if(ENABLE_UTF8_MB) {

    return mb_strlen($s);

    }

    if(ENABLE_UTF8_NOMB) {

    return strlen(utf8_decode($s));

    }

    return strlen($s);

    }

    function _mb_substr($s,$b,$l=NULL) {

    /* UTF8 ready */

    if(ENABLE_UTF8_MB) {

    return is_null($l) ? mb_substr($s,$b) : mb_substr($s,$b,$l);

    }

    /* UTF8 ready */

    if(ENABLE_UTF8_NOMB) {

    if($b <0 ) {

    $b = _mb_strlen($s) + (int) $b;

    }

    if( is_null($l) || _mb_strlen($s)<($l+$b)) { $l = ‘*’; } else { if($l <0 ) $l = _mb_strlen($s) + (int) $l; $l = ‘{0,’.preg_quote($l).’}’; } preg_match(‘/^.{‘.preg_quote($b).’}(.’.$l.’)/us’, $s, $m); return ( isset($m[1]) ) ? $m[1] : false; } return ( is_null($l) ) ? substr($s,$b) : substr($s,$b,$l); }

    un lietošanas piemērs:

    Quote:

    $mainigais = _mb_substr($mainigais, 0, 70);

    #202203
    mmittz
    Participant

    Super, viss strādā ideāli, tavs paša koda gabals vai no kopēts?

    #202204
    Mr.Death
    Participant

    kaut kur laikam sen sen atpakaļ nokopēju no php.net mājas lapas. 🙂 slinkums bija gudrot, kā paša spēkiem novērst to gļuku 😀

    #202205
    mmittz
    Participant

    baigi vienkārši: mb_internal_encoding(“utf8”);

    #202206
    Mr.Death
    Participant

    tomēr?…. būs kaut kur jāpieskricelē. nezkāpēc man liekas, ka šo variantu jau toreiz biju mēģinājis.

    #202207
    Anonīms
    Neaktīvs

    mmittz wrote:

    baigi vienkārši: mb_internal_encoding(“utf8”);


    +10

    #202208
    m*****
    Participant

    Principā jau atbildi šeit pateica, tika gribeju piebilst, ka visādu ievadtekstu u.tml. apgraizīšanai manuprāt labāk izmantot kaut ko līdzīgu šim, protams, pielabojot pēc savām vajadzībām – https://blocins.lv/files/textlimit.phps Iespējams var atrast arī kādus vienkārsākus/labākus/efektīvākus variantus.

    Tādejādi vārdi netiek aprauti pusē, un, ja teksts ir garāks par limitu, var pielikt galā daudzpunkti vai kādu citu simbolu, kā arī nav jāuztraucās par speciālajiem simboliem, nenoslēgtiem tagiem u.tml.

Tiek skatīts 8 ierakstu – 1 līdz 8 (no 8 kopumā)
  • Jums ir jāpieslēdzas sistēmai, lai varētu komentēt šo tēmu.
Jaunākais portālā