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

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

SniR-S 03-10-09 10:53

שימוש בביטויים רגולריים
 
יש לי את הקוד הבא:
PHP קוד:

$_FILES['file']['name'] = preg_match("^[א-ת]$\.\s"rand(0,1000), $_FILES['file']['name']); 

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

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

אממ..מקווה לעזרה,
תודה. :-)

SniR-S 04-10-09 09:10

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

Daniel 04-10-09 10:08

ציטוט:

נכתב במקור על ידי Snir Shamka (פרסם 740745)
חחחח כנראה שהעסק ביטויים רגולריים גדול מדי על כולם ..
או לפחות כימעט כולם, חבל שאין הרבה שמתעסקים עם זה ולומדים את זה.

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


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

כמו כן, $ מסמן סוף מחרוזת (או סוף שורה) - למה הוא שם? זה יוצר דבר "בלתי אפשרי".

Hezi & BomBas 04-10-09 11:13

תעשה EXPLODE לשם של הקובץ במקום לעשות את זה בביטויים רגולריים (מה גם שהביטוי שעשית לא נכון).
תשתמש בערך הראשון של המערך שנקלט מ EXPLODE כדי לקבל רק את שם הקובץ, ותשנה את הביטוי שלך לזה:
PHP קוד:

preg_replace("#^[א-ת]$#s"rand(0,1000), $explode_array[1]); 

אני לא בטוח שאפשרי לעשות [א-ת], אבל תנסה.

SniR-S 04-10-09 16:25

תודה, עשיתי פונקציה אחרת, אבל נעזרתי ב Explode :)


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

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