הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   לחתוך 10 אותיות ראשונות מתוך מחרוזת, (https://hosts.co.il/forums/showthread.php?t=105666)

איציק ברבי 14-11-13 10:53

לחתוך 10 אותיות ראשונות מתוך מחרוזת,
 
יש לי מחרוזת שמכילה 30 תווים ואני רוצה להציג את ה10 הראשונות בלבד, ניסיתי לבצע את זה עם sub_str אבל זה מחזיר לי סימנים מוזרים כאלה בסוף המחרוזת ולא מביא את מה שביקשתי.

יצרתי פונקציה דומה שעוברת בלולאת פור על המערך של המחרוזת ושולפת משמה את התו באצמעות $i

הנה הקוד:
PHP קוד:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
    
function Slicer($string,$replace,$much){
        if(
strlen($string) > $much){
            
$word null;
            for(
$i=0;$i<$much-1;$i++){
                
$word .= $string[$i];        
            }
            return (
$word.$replace);
        }else{
            return 
$string;
        }
    }
    echo 
Slicer("כוס שתייה קרה 100 יחידות","..",15);
?>

כל הקטע שזה מחזיר לי בדיוק אותו דבר כמו בsub_str -
קוד:

כוס שתי�..
יש למישהו מושג? ניסיתי לאנקד את זה לutf8 באמצעות utf8_encode וגם המסמך מומר לUTF8 ללא BOM.

אשמח לתשובה.

Tomer 14-11-13 11:29

http://php.net/manual/en/function.mb-substr.php

איציק ברבי 14-11-13 12:32

עדיין אותו דבר...

MAORBARI 14-11-13 20:16

iconv_substr

אדיר 15-11-13 01:55

mb_substr דווקא אמור לעבוד, שים לב שאתה עובד נכון עם ה- encoding.

איציק ברבי 09-12-13 21:47

ציטוט:

נכתב במקור על ידי אדיר (פרסם 883855)
mb_substr דווקא אמור לעבוד, שים לב שאתה עובד נכון עם ה- encoding.

כן שמתי לב התעצלתי לבדוק את זה יותר לעמוד, שכחתי את ה "mb_internal_encoding"
בכל מקרה לבנתיים זה עובד כמו שצריך !

הנה הפונקציה שכביכול בניתי לזה:

קוד:

function Slicer($string,$replace,$much){
                        mb_internal_encoding("UTF-8");
                        $mystring = mb_substr($string,0,$much).$replace;
                }


zoharesh 09-12-13 21:53

את mb_internal_encoding מספיק להגדיר פעם אחת.
חבל להוסיף אותו לפונקציה אם אתה משתמש בו כמה פעמים באותו העמוד.

איציק ברבי 10-12-13 03:34

תודה על העצה ^!


כל הזמנים הם GMT +2. הזמן כעת הוא 17:39.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ