Προς το περιεχόμενο

Php και strings


zipos

Προτεινόμενες αναρτήσεις

Δημοσ.

Η παρακάτω συνάρτηση παίρνει ένα στριγκάκι και έναν ακέραιο αριθμό $chars.

Στην περίπτωση που το στριγκ έχει πάνω από $chars χαρακτήρες, η συνάρτηση κόβει το στρινκ και κρατάει $chars το πλήθος χαρακτήρες, προσθέτοντας αποσιωπητικά "..." .

 

>function shortText($str, $chars)
{
if (mb_strlen($str) > $chars)
   {
   $str = mb_substr($str, 0, $chars);
   $str = $str . "...";
   return $str;
   }
else
   {
return $str;
   }
}

 

Μπορεί κανείς να εξηγήσει γιατί στο τέλος του στριγκ που επιστρέφει η συνάρτηση εμφανίζεται μερικές φορές ένας άγνωστος χαρακτήρας? (στον firefox εμφανίζεται ερωτηματικό)

Δημοσ.

Αν δουλεύεις με utf8, επειδή τα πράγματα μπερδεύονται όταν είναι Ελληνικά, δηλαδή κάποιος χαρακτήρας utf8 Ελληνικός μετρείται πάνω από 1, γενικά είναι περίεργη η επεξεργασία utf8.Θα σου πρότεινα να μετατρέψεις σε iso-8859-7 να κανεις τις απαραίτητες επεξεργασίες και μετά κάντο πάλι utf8.

παράδειγμα μετατροπής

>
#utf8 σε iso
$str=iconv('UTF-8','ISO-8859-7//TRANSLIT',$str);
#iso σε utf8
$str=iconv('ISO-8859-7', 'UTF-8//TRANSLIT', $str);

Δημοσ.

Πράγματι,

έριξα και μια ματιά στο site της php και είδα ότι έχουν ποστάρει παρόμοια σκριπτάκια για strlen και utf-8.

 

Πιστεύω αυτό θα λύσει το πρόβλημα.

 

Να σαι καλά

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...