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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [php] חילוק סטרינג (https://hosts.co.il/forums/showthread.php?t=55632)

daMn 25-10-07 23:20

[php] חילוק סטרינג
 
אז ככה יש לי מערכת תגובות, לכל תגובה יש div עם width וheight קבוע, שאני שולף את הנתונים מהמסד נתונים, משום מה הוא מתעלם מה הרוחב של של הdiv.

בכל מקרה הבנתי שאם אנשים לדוגמא רושמים:
"חחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחחח חחחחחחחחח"
מאוד ארוך ובלי רווח אחד אז זה מתעלם מהdiv.
אם היה רווח אחד באמצע אז הוא היה יורד שורה במקרה והיה מגיע לסוף.

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

אז קראתי על הרבה פונצקיות של str וניסתי כמה ולא הלך לי ממש, אני צריך עזרה...

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

תודה,
ירין

Meir 25-10-07 23:22

http://il.php.net/manual/he/function.wordwrap.php

daMn 25-10-07 23:28

זה לא מה שביקשתי, אבל זה רעיון נחמד.
אשמח אם מישהו יציע פתרון לבעיה שלי.

Meir 26-10-07 00:28

אוקיי לפי ההסבר שלך הינה הפונקציה המדוייקת:

PHP קוד:

function limit_width($text$limit)
{
    foreach (
explode(' '$text) as $word) {
        if (isset(
$word[$limit])) {
            
$center    ceil(strlen($word)/2);
            
$new_text .= substr($word0$center).' '.substr($word$center).' ';
        } else {
            
$new_text .= $word.' ';
        }
    }
    
    return 
$new_text;


לוקחת את הטקסט ובודקת מילה מילה אם האורך שלה גדול ממה שהקצבת לה אז היא מכניסה באמצע רווח.

DavidBD 26-10-07 00:38

יש לציין, תבדוק כמה האות W גדולה נכנסת כי היא האות שתופסת הכי הרבה מקום,
כשתגיע למס' הW הגדולות שנכנסות בקטע, תגביל עם המספר הזה :]

בהצלחה!

DevZone.co.il 26-10-07 07:40

הפתרון שהביאו טוב, תשתמש בו.


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

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