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

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

syn 10-03-07 20:59

[שאלה] הגבלה של תווים
 
יש לי טקסט שיש בו 500 תווים ונמצא ב $text,
אני מחפש פקודה שתציג רק את 300 התווים הראשונים, תודה לעוזרים :)

* אגב, אבקש להוסיף פקודה שלא תקטע לי את המילה באמצע :(

DevZone.co.il 10-03-07 21:03

תשתמש בפונקציה substr.
PHP קוד:

<?php
$rest 
substr("abcdef"1);    // returns "bcdef"
$rest substr("abcdef"13); // returns "bcd"
$rest substr("abcdef"04); // returns "abcd"
$rest substr("abcdef"08); // returns "abcdef"
?>

לעוד מידע כנס לפה :
http://il2.php.net/manual/he/function.substr.php

DorWD 10-03-07 21:06

PHP קוד:

$text substr($text, -200); 

תנסה את זה

syn 10-03-07 21:26

תודה רבה, זה התאים לי.
השתמשתי בה בצורה הזאת -
PHP קוד:

 $text substr($text0200); 

עכשיו יש לי בעיה קטנה, זה מוסיף בסוף הטקסט סימן שאלה (אחרי שימוש בפונקציה), מה אפשר לעשות?

בניה 10-03-07 21:30

תראה את הקוד, זה נשמע מוזר.

syn 10-03-07 21:33

ציטוט:

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

PHP קוד:

<?
include("config.php");
$getnews mysql_query("select * from news ORDER BY id DESC");
while(
$r=mysql_fetch_array($getnews)){
extract($r);
echo(
"<!-- Right column -->
<div class=\"floatRight width65\"><h1 align=\"right\">$title</h1>
<div class=\"date\" align=\"right\">$date</div>

<p class=\"item\" dir=\"rtl\" align=\"right\">
<img src=\"$img\" alt=\" \" class=\"floatRight border\"/>"
);



$text substr($text0170);  
echo 
$text;

echo(
"... <a href=\"item.php?id=$id\">קרא עוד</a></p></div><!-- Right column end -->");

}
?>

כשהפונקציה לא בשימוש, ז"א יש מתחת ל300 תווים אין את הבעיה הזו.
*אגב, בפיירפוקס זה ?, וב ie הסימן נראה כמו ריבוע.
נתקלתי באותה הבעיה כשחלק מהדפים היו מקודדים בקידוד שונה מ utf-8 (כי ה header, ה footer מקודדים ב utf-8).

nevo 10-03-07 21:36

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

Tomer 10-03-07 21:38

כנראה שאחת המילים נחתכות באמצע, ולכן זה קוטע את ה UTF-8 ומציג לך את הסימן.

syn 10-03-07 21:42

ציטוט:

נכתב במקור על ידי Tomer (פרסם 436751)
כנראה שאחת המילים נחתכות באמצע, ולכן זה קוטע את ה UTF-8 ומציג לך את הסימן.

זאת הבעיה :), ניסיתי עכשיו להגביל ככה שזה לא יחתוך מילים בטקסט וזה לא הראה שום בעיות.
nevo, אתה יכול להסביר קצת יותר לעומק על ה SPLIT הזה? אף פעם לא שמעתי על זה.

עריכה:
PHP קוד:

<?php

$date 
"04/30/1973";
list(
$month$day$year) = split('[/.-]'$date);
echo 
"Month: $month; Day: $day; Year: $year<br />\n";
?>

הבנתי איך זה עובד, אבל איך אני אמור לדעת כמה מילים יהיו לי בטקסט? :(


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

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