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

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 19-05-09, 17:02   # 1
Erez | TrustMedia.co.il
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,854

Erez | TrustMedia.co.il לא מחובר  

עזרה|בעיה מוזרה בעיבוד טקסט שמיובא מקובץ

אני רוצה לקחת קובץ טקסט מסויים ולשנות אותו עם regex בהתאם
אבל כאשר אני מייבא את התוכן של הקובץ עם file_get_contents או עם fopen משום מה זה לא עובד,אבל אם אני מעתיק את התוכן של הקובץ לתוך משתנה ידנית,אז זה עובד מצויין
למישהו יש מושג למה זה ככה?
אם אתם צריכים את הקוד של העמוד אני יביא
__________________

Last edited by Erez | TrustMedia.co.il; 19-05-09 at 17:05..
  Reply With Quote
ישן 25-05-09, 18:26   # 2
Erez | TrustMedia.co.il
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,854

Erez | TrustMedia.co.il לא מחובר  

הנה הקוד:

זה עובד:
PHP קוד:
<pre>
<?php
$srtInput 
'1
00:00:09,600 --> 00:00:10,644
<i>!חשוך כאן</i>

2
00:00:11,345 --> 00:00:13,045
<i>המנהל סקינר
אני צובע בתים</i>

3
00:00:15,046 --> 00:00:16,546
<i>אני לא אשפוך רוטב חריף
לתוך בובת ההחייאה</i>'
;
$regExp "#[0-9]{1,5}[\n]([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3}) --> ([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3})\n((.+\n)*)#";
$results preg_match_all($regExp,"\n".$srtInput."\n"$matches);
 
print_r($matches);
 
?>
 </pre>
אבל זה לא עובד:
PHP קוד:
<pre>
<?php
$srtInput 
file_get_contents("sd.srt");
$regExp "#[0-9]{1,5}[\n]([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3}) --> ([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3})\n((.+\n)*)#";
$results preg_match_all($regExp,"\n".$srtInput."\n"$matches);
 
print_r($matches);
 
?>
 </pre>
הקובץ sd.srt מכיל את התוכן הבא:
ציטוט:
1
00:00:09,600 --> 00:00:10,644
<i>!חשוך כאן</i>

2
00:00:11,345 --> 00:00:13,045
<i>המנהל סקינר
אני צובע בתים</i>

3
00:00:15,046 --> 00:00:16,546
<i>אני לא אשפוך רוטב חריף
לתוך בובת ההחייאה</i>
(בקיצור קובץ כתוביות רגיל שהורדתי מאינטרנט)

ההבדל היחיד ששמתי לב אליו זה שאם אני מציג את שניהם בטבלה(כל אחד בטור) אז התוכן של המשתנה שהעתקתי אליו את התוכן ידנית יורד שורה אחת למטה,לא הצלחתי לסדר את זה
ועוד דבר אחד שגיליתי מחיפוש קצר בפורומים באינטרנט זה שכתוביות מקודדות בUTF16,וPHP לא תומך בUFT16 בצורה מושלמת,ויכול להיות שזה הסיבה,אבל אני לא מצליח לשנות לקובץ את הקידוד
__________________
  Reply With Quote
ישן 26-05-09, 18:46   # 3
Daniel
אחראי פורום
 
מיני פרופיל
תאריך הצטרפות: Mar 2007
הודעות: 2,875

Daniel לא מחובר  

לא הבנתי - אבל מהמעט שהבנתי תשתמש ב-\r\n במקום רק ב-\n
  Reply With Quote
ישן 26-05-09, 20:46   # 4
Erez | TrustMedia.co.il
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,854

Erez | TrustMedia.co.il לא מחובר  

ציטוט:
נכתב במקור על ידי MasterT צפה בהודעה
לא הבנתי - אבל מהמעט שהבנתי תשתמש ב-\r\n במקום רק ב-\n
תודה!!!
אני לפחות שבוע מנסה לפתור את זה ולא הצלחתי,תודה!!!
רק אם אתה יכול להסביר מה ההבדל בין \n לבין \r\n?ומתי צריך להשתמש במה?
__________________
  Reply With Quote
ישן 27-05-09, 07:40   # 5
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 36
הודעות: 710

vadimg88 לא מחובר  

ההבדל בין \n ל \r\n הוא מערכת ההפעלה שבה אתה עובד.

בדוס ווינדוס שורה חדשה נוצרת על ידי \r\n במערכות הפעלה מסוג UNIX זה מתבצע בעזרת \n ב MAC זה \r

מביא אותי לחשוב למה זה פתר לך את הבעיה בכלל.
  Reply With Quote
ישן 27-05-09, 17:18   # 6
Erez | TrustMedia.co.il
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,854

Erez | TrustMedia.co.il לא מחובר  

ציטוט:
נכתב במקור על ידי vadimg88 צפה בהודעה
ההבדל בין \n ל \r\n הוא מערכת ההפעלה שבה אתה עובד.

בדוס ווינדוס שורה חדשה נוצרת על ידי \r\n במערכות הפעלה מסוג UNIX זה מתבצע בעזרת \n ב MAC זה \r

מביא אותי לחשוב למה זה פתר לך את הבעיה בכלל.
אז אם אני יאחסן את זה על שרת לינוקס אני יצטרך לרשום /n?
וגם אני לא ממש מבין איך זה פתר את הבעיה,אבל זה פתר
__________________
  Reply With Quote
ישן 27-05-09, 18:35   # 7
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 36
הודעות: 710

vadimg88 לא מחובר  

כן, אבל אז אם הסקריפט ישב על וינדוס תיהיה בעיה (לא כל כך בעיה רק שלא בטוח שזה יעשה שורה חדשה אלה אם הוגדר בוינדוס לתמוך בזה) לכן פשוט תשתמש ב EOL ב PHP.
  Reply With Quote
ישן 27-05-09, 22:16   # 8
Erez | TrustMedia.co.il
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,854

Erez | TrustMedia.co.il לא מחובר  

ציטוט:
נכתב במקור על ידי vadimg88 צפה בהודעה
כן, אבל אז אם הסקריפט ישב על וינדוס תיהיה בעיה (לא כל כך בעיה רק שלא בטוח שזה יעשה שורה חדשה אלה אם הוגדר בוינדוס לתמוך בזה) לכן פשוט תשתמש ב EOL ב PHP.
כאילו לעשות ככה:
<<<EOL EOL;
?
או שלא הבנתי אותך נכון?
בכל מקרה הסקריפט יהיה מאוחסן על לינוקס,אז כשאני יעלה אני ישנה אותו
__________________
  Reply With Quote
ישן 28-05-09, 07:04   # 9
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 36
הודעות: 710

vadimg88 לא מחובר  

לא מה שאתה מתכוון ב <<<EOL זה HERDOC אני מתכוון ל EOL שזה CONSTANT ב PHP שמעיד על End Of Line שורה חדשה בעצם והיא תוצג לפי מערכת ההפעלה בה הסקריפט רץ.
  Reply With Quote
ישן 28-05-09, 11:53   # 10
Shillo
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Jun 2007
הודעות: 509

Shillo לא מחובר  

file_get_contents לא סידר לך אוטומטית את הקובץ?
כשאני משתמש בזה זה מסדר.
  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. הזמן כעת הוא 15:11.

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