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

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

DvirCohen 22-01-09 23:39

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

Shon12 22-01-09 23:50

ציטוט:

נכתב במקור על ידי DvirCohen (פרסם 694269)
אתה מנסה לפתוח קובץ, אם הקובץ הזה לא קיים הוא יצור אותו, הפוונקציה הזאת תחזיר TRUE בכל מקרה, זאת ממש לא דרך לבדוק אם הקובץ הזה הוא תיקיה.
יש לזה פונקציות כמו is_dir שיעשו את העבודה.

הוא ציין שהוא לא רוצה להשתמש בפונקצייה is_dir.
בכל מקרה - לי הוא לא יוצר קובץ חדש. וגם אם הוא ייצור לאנשים אחרים, הם יוכלו להשתמש במקום ב-w ב-x (למרות שאני בטוח ב-99.9% שזה לא יוצר לאף אחד).
מה שכן, הוא גם לא ציין שיווצר מצב שלא תיהיה לא תיקייה ולא קובץ כך שלא חשבתי לכיוון הזה בכלל.
וגם אם הוא יצטרך יש הרבה דרכים לעשות כך שלא ייצור.

עריכה:
http://www.decompile.com/cpp/faq/fopen_write_append.htm
ציטוט: "Create for writing. If a file by that name already exists, it will be overwritten."
כלומר זה מתייחס רק כשאתה משתמש ב-fread, אז הערך ישוכתב על הערך שקיים.
מה שאני לא השתמשתי.

בניה 23-01-09 01:37

אפשר לעשות משהו טיפה עקום.
להשתמש בפונקציה
http://il2.php.net/manual/en/function.ftp-rawlist.php

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


עוד משהו:
אם בודקים גודל תקייה עם
http://il2.php.net/manual/en/function.ftp-size.php
מקבלים -1 , יענו שגיאה.
אפשר לבדוק גם עם זה.

Derey22 23-01-09 07:06

תודה לכולם אפשל לנועל.

vadimg88 23-01-09 10:14

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

Derey22 23-01-09 18:07

הבעיה שאני כבר מחובר לftp,למה לי להתחבר שוב עם is_dir?

daMn 23-01-09 18:46

ציטוט:

נכתב במקור על ידי Derey22 (פרסם 694360)
הבעיה שאני כבר מחובר לftp,למה לי להתחבר שוב עם is_dir?

is_dir לא מתחבר לftp.
אם PHP יצרו את הפונקציה הזאת ואין לה פונקציה מקבילה זה אומר שיש טעם להשתמש בה.

Derey22 23-01-09 19:51

ציטוט:

נכתב במקור על ידי daMn (פרסם 694368)
is_dir לא מתחבר לftp.
אם PHP יצרו את הפונקציה הזאת ואין לה פונקציה מקבילה זה אומר שיש טעם להשתמש בה.

אז איך אני יכול לבדוק אם קיית תקיית X בשרת שלי בלי להתחבר לftp?

בניה 23-01-09 21:36

ציטוט:

נכתב במקור על ידי daMn (פרסם 694368)
is_dir לא מתחבר לftp.
אם PHP יצרו את הפונקציה הזאת ואין לה פונקציה מקבילה זה אומר שיש טעם להשתמש בה.

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

DvirCohen 24-01-09 01:56

אבל עד כמה שאני מבין, הוא התחבר לFTP מההתחלה בשביל לבדוק אם X הוא תיקיה.


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

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