הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 31-01-12, 17:06   # 1
Megnum
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: May 2007
מיקום: אשד
הודעות: 1,308

Megnum לא מחובר  

בדיקה האם האותיות גדולות בPHP

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

אני רוצה לדעת למשל אם "i have a dog" המחרוזת היא משפט של אותיות גדולות אם לא
אז אני הופך אותה לאותיות גדולות עם strtoupper

תודה מקווה שהבנתם
  Reply With Quote
ישן 31-01-12, 17:11   # 2
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

אתה יכול להשתמש ב ctype_upper, אתה יכול להשוות את הערך המקורי לאחר שבוצע עליו strtoupper, ואתה יכול לעשות strtoupper מלכתחילה בלי שום בדיקה אם בכל מקרה אתה רוצה שהכל יהיה באותיות גדולות.
  Reply With Quote
ישן 31-01-12, 17:34   # 3
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

PHP קוד:
if( strtoupper($string) == $string )
{
    
$string strtoupper($string);

אבל האמת שזה מיותר, אתה יכול ישר להשתמש בפונקצייה strtoupper .
  Reply With Quote
ישן 31-01-12, 17:43   # 4
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

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

בכל מקרה כבר הבאתי לו את שלושת הדרכים הסטנדרטיות לעשות את זה,
כמו שציינתי גם לדעתי אם הוא בכל מקרה הולך להפוך את זה ל- UC התנאי מיותר.
  Reply With Quote
ישן 31-01-12, 20:52   # 5
NetanelEdri
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Aug 2010
הודעות: 159

NetanelEdri לא מחובר  

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

PHP קוד:
$string "My name is Netanel Edri";
$uppercase_count 0;
for(
$i 0$i strlen($string); $i++)
{
    
$uppercase_count += (ctype_upper($string[$i])) ? 0;

עכשיו יש לך משתנה שאתה בודק אם הוא גדול מ 0 , במידה וכן בעצם יש אותיות גדולות במחרוזת ואתה אפילו תדע כמה (זה הערך שלו).
__________________
UI/UX Expert | WEB Developer | Mobile Apps Developer

- Netanel Edri, new approach to development -

Last edited by NetanelEdri; 31-01-12 at 20:54..
  Reply With Quote
ישן 31-01-12, 23:02   # 6
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

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

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

--------------

בלי להסתבך יותר מדי, שימוש פשוט בregex
(דרך אגב נתנאל, אפשר ורצוי לעצור את הלולאה בבדיקה)
PHP קוד:
<?php
    $string 
'My name is Haim';
    
preg_match_all('/[A-Z]/'$string$matches);
    
$count count($matches[0]);
?>
ובשביל לבדוק, הערך של $count יהיה אפסי אם לא יהיו אותיות גדולות במשפט.

Last edited by Haimz; 31-01-12 at 23:39..
  Reply With Quote
ישן 31-01-12, 23:09   # 7
SniR-S
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Aug 2008
הודעות: 546

SniR-S לא מחובר  

למה לסבך את העניינים? אפשר לעשות את זה עם preg_match הכי פשוט והכי יעיל.
PHP קוד:
$value 'aaaS DSDSD 1122';

if (
preg_match("/[A-Z]/"$value)) {
    echo 
'The uppercase was found!';
} else {
    echo 
'The uppercase was not found!';

כנ"ל לגבי אותיות קטנות, במקום A-Z אתה עושה a-z (לצורך ידע כללי, למרות שאין לך צורך להשתמש בזה)
  Reply With Quote
ישן 01-02-12, 00:05   # 8
NetanelEdri
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Aug 2010
הודעות: 159

NetanelEdri לא מחובר  

לא כל כך מהותי בבדיקה כזו לעצור את הלולאה , בכל מקרה הפתרון שלי וגם עם REGEX שניהם יעבדו אותו דבר.
ד"א בפתרון שלי הוא יכול לקבל את מספר המופעים של אות גדולה שאולי זה יכול לשמש אותו בפעולה שהוא עושה.
__________________
UI/UX Expert | WEB Developer | Mobile Apps Developer

- Netanel Edri, new approach to development -
  Reply With Quote
ישן 01-02-12, 18:53   # 9
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

למה לא? מה הטעם להמשיך אותו, אם הסטרינג הוא עם 1500 תווים ובתו השני נמצאה אות גדולה, הוא סתם יעבור את כל האותיות ..
כנ"ל, גם בREGEX ,זה השימוש ב preg match all
  Reply With Quote
ישן 01-02-12, 19:27   # 10
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

בואו נעשה כאן קצת סדר..

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

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

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


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

Last edited by אדיר; 01-02-12 at 19:34..
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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