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

הוסטס - פורום אחסון האתרים הגדול בישראל (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=62925)

Oribest 09-05-08 20:29

[PHP] פירוק מספר והמרה לתמונות.
 
שלום לכולם,
שבת שלום.

אני רוצה לעשות משו כזה,
שאם אני מקבל נגיד את המספר
465
אז הוא יהפוך לי את זה לקוד HTML כזה :
קוד:

<img src="4.jpg"><img src="6.jpg"><img src="5.jpg">
איך אני עושה את הדבר הזה?

תודה רבה לכל העוזרים!

daMn 09-05-08 20:33

PHP קוד:

str_replace(3"<img src=\"3.jpg\">"$Number); 

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

Daniel 10-05-08 16:07

str_split, זה אמור להתאים כאן

daMn 10-05-08 16:39

ציטוט:

נכתב במקור על ידי MasterT (פרסם 632372)
str_split, זה אמור להתאים כאן

איך בדיוק ספליט יעזור?

4ior 10-05-08 16:50

ציטוט:

נכתב במקור על ידי daMn (פרסם 632376)
איך בדיוק ספליט יעזור?

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


בעקרון יש הרבה דרכים..

Nils 11-05-08 16:59

למה לא לעשות את זה עם משתנים?

Rom 11-05-08 19:08

במקום להסתבך תעשה את זה ככה:
PHP קוד:

<?php
    $text 
"456";
    for(
$i 0$i<strlen($text); $i++)
        echo 
"<img src='{$text{$i}}.jpg' />";
?>


Daniel 11-05-08 19:25

ציטוט:

נכתב במקור על ידי Rom (פרסם 632679)
במקום להסתבך תעשה את זה ככה:
PHP קוד:

<?php
    $text 
"456";
    for(
$i 0$i<strlen($text); $i++)
        echo 
"<img src='{$text{$i}}.jpg' />";
?>


זה ממש ממש לא יעיל....

מהבחינה הראשונה - הלולאה כל פעם, מחדש, תחשב את strlen($text);. משאבים.

+ strlen אתה צריך כדי לגלות את מספר התווים, אפשר להשתמש במקום $i<strlen($text), ב-
PHP קוד:

isset($text{$i}) 

וככה חסכת פעמיים על יעילות..

Rom 11-05-08 21:28

ציטוט:

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

מהבחינה הראשונה - הלולאה כל פעם, מחדש, תחשב את strlen($text);. משאבים.

+ strlen אתה צריך כדי לגלות את מספר התווים, אפשר להשתמש במקום $i<strlen($text), ב-
PHP קוד:

isset($text{$i}) 

וככה חסכת פעמיים על יעילות..

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

Daniel 12-05-08 14:51

ציטוט:

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

בדקתי, והשיטה שהצגתי הכי יעילה...

isset זאת פונקציה מובנית, אני לא יודע בדיוק איך להסביר את זה - אבל היא פונקציה מאוד מהירה.

הרצתי סקריפט זהה ב- 3 השיטות.. זמן הביצוע.
עם strlen - כמו הראשונה שהצגת.
1.8258221149445
strlen שמור במשתנה
1.6486470890045
בלי strlen - כמו שאמרתי.
1.5933120250702

זה עוד הבדלים שצריך לשים לב אליהם.

Meir 12-05-08 15:21

בפשטות:

PHP קוד:

<?php
echo preg_replace('/(\d)/''<img src="\\1.jpg" />''456');
?>


Matan Levy 12-05-08 20:52

תעשה פעולות חשבוניות.
הנה קוד שכתבתי:
PHP קוד:

<?php
$number
=493;
$onenumber/100;
$twonumber /10&#37;10;
$threenumber%10;
echo 
'<img src="'.$one.'.jpg" /><br />';
echo 
'<img src="'.$two.'.jpg" /><br />';
echo 
'<img src="'.$three.'.jpg" /><br />';
?>

זה תקף לגבי כל מספר תלת ספרתי.

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

Daniel 12-05-08 20:53

ציטוט:

נכתב במקור על ידי Matan Levy (פרסם 632903)
תעשה פעולות חשבוניות.
הנה קוד שכתבתי:
PHP קוד:

<?php
$number
=493;
$onenumber/100;
$twonumber/10XXX10;
$threenumber%10;
echo 
'<img src="'.$one.'.jpg" /><br />';
echo 
'<img src="'.$two.'.jpg" /><br />';
echo 
'<img src="'.$three.'.jpg" /><br />';
?>

זה תקף לגבי כל מספר תלת ספרתי.

XXX= %
משום מה זה כאילו מצנזר לי את ההודעה.

זה לא יעבוד + הקוד אמור להיקבע באופן דינמי.... ואם יש 100 ספרות?

Matan Levy 12-05-08 21:00

ציטוט:

נכתב במקור על ידי MasterT (פרסם 632904)
זה לא יעבוד + הקוד אמור להיקבע באופן דינמי.... ואם יש 100 ספרות?

ערכתי את ההודעה.
ואם אתה לא יודע אל תדבר.

soomsoom 13-05-08 07:38

ציטוט:

נכתב במקור על ידי daMn (פרסם 632218)
PHP קוד:

str_replace(3"<img src=\"3.jpg\">"$Number); 

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

הכי טוב לחלק מספר ב10 או ב100 ואז לעשות שארית (ראה מודולה) ב10 וזה יביא למספר :)


(ד"א למדתי את זה במדעי המחשב)

WebProject 13-05-08 07:50

תעשה str_replace, סה"כ 9 ספרות, כל שאר הרעיונות פה מוגזמים, סה"כ להחליף ספרה בתמונה.

Daniel 13-05-08 17:24

ציטוט:

נכתב במקור על ידי Matan Levy (פרסם 632907)
ערכתי את ההודעה.
ואם אתה לא יודע אל תדבר.

אם אני לא יודע לא לדבר?
הדבר שלך יציג בדיוק:
HTML קוד:

<img src="4.93.jpg" /><br /><img src="9.jpg" /><br /><img src="3.jpg" /><br />
התמונה הראשונה זה 4.93.jpg? אז בבקשה, אל תדחה לפני שתבדוק.

meshuga 13-05-08 18:35

ציטוט:

נכתב במקור על ידי Matan Levy (פרסם 632907)
ערכתי את ההודעה.
ואם אתה לא יודע אל תדבר.

הוא צודק..אם היית שם int או floor() אז זה היה עובד..
בC למשל וכל השפות הדומות...זה היה מצויין...כשיש לך משתנה מוגדר כINT,בPHP הוא לא מוגדר ספציפית כINT


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

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