שאלה

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: שאלה

שליחהעל ידי 011371 » 18:57 26/06/2018

אתה כותב את שם הערך במערך = הנתון שאתה רוצה שיכנס
למשל כדי להכניס את מספר הטלפון למערך תוכל לרשום

קוד: בחירת הכל

$info['phone'] = $data_row[0] ;
הבנת?

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 19:31 26/06/2018

אתה כותב את שם הערך במערך = הנתון שאתה רוצה שיכנס
למשל כדי להכניס את מספר הטלפון למערך תוכל לרשום

קוד: בחירת הכל

$info['phone'] = $data_row[0] ;
הבנת?
הצלחתי איך שהוא אבל פתאום הוא מראה שגיאה כדלהלן
זה הקוד בphp

קוד: בחירת הכל

<?php
$a="05012345678-IVR_PATH(2018-07-21-13-42-44)=2/
05012345678-Current(2018-07-21-13-42-44)=199
05012345678-OFFSET(2018-07-21-13-42-44)=2882
p-IVR_PATH(2018-07-21-13-42-44)=2/
p-Current(2018-07-21-13-42-44)=199
p-OFFSET(2018-07-21-13-42-44)=2882";
$a1=str_replace('(','-', $a);
$a2=str_replace(')','-', $a1);
$a3=str_replace('=','-', $a2);

foreach( explode("\r\n" , $a3) as $row) {
$data_row = explode("-" , $row ) ;
$info = array();
$info['phone'] = $data_row[0] ;
$info['date'] = $data_row[2].'/'.$data_row[3].'/'.$data_row[4] ;
$info['time'] = $data_row[5].':'.$data_row[6].':'.$data_row[7] ;
$info['path'] = $data_row[9];

$all_info[]= $info;
}
foreach ($all_info as $info) {
echo "טלפון: ";
echo $info['phone'];
echo "<br />";
echo "תאריך: ";
echo $info['date'];
echo "<br />";
echo "שעה: ";
echo $info['time'];
echo "<br />";
echo "שלוחה: ";
echo $info['path'];
echo "<br />";
}
וזה התוצאה

קוד: בחירת הכל

טלפון: 05012345678
תאריך: 2018/07/21
שעה: 13:42:44
שלוחה: 2/
טלפון: 05012345678
תאריך: 2018/07/21
שעה: 13:42:44
שלוחה: 199
טלפון: 05012345678
תאריך: 2018/07/21
שעה: 13:42:44
שלוחה: 2882
טלפון: p
תאריך: 2018/07/21
שעה: 13:42:44
שלוחה: 2/
טלפון: p
תאריך: 2018/07/21
שעה: 13:42:44
שלוחה: 199
טלפון: p
תאריך: 2018/07/21
שעה: 13:42:44
שלוחה: 2882
והבאג הוא שהוא מציג את המשפט "שלוחה" בכל שורה גם כשזה לא קשור (הוא מציג "שלוחה" גם על שם הקובץ וגם על הניתוק(
אשמח שתעזור לי.
תודה

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: שאלה

שליחהעל ידי 011371 » 20:48 26/06/2018

לכן כתבתי לך לעיל שאתה צריך לעשות תנאים
כלומר לבדוק האם בdata_row הנוכחי בערך 1 מופיע המילה IVR_PATH אז שיכניס בערך info['path'] למשל את הערך 9 של data_row
ואם מופיע Current אז שיכניס בערך file וכן הלאה

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 10:35 27/06/2018

ל011371. קצת הבנתי אבל עדיין יש בעייה קטנה.
וזה מה שהגדרתי

קוד: בחירת הכל

<?php
$a="05012345678-IVR_PATH(2018-07-21-13-42-44)=2/
0534100432-Current(2018-07-21-13-42-44)=199
0534100432-OFFSET(2018-07-21-13-42-44)=2882
0534100432-IVR_PATH(2018-07-21-13-42-44)=2/
05012345678-Current(2018-07-21-13-42-44)=199
05012345678-OFFSET(2018-07-21-13-42-44)=2882";
$a1=str_replace('(','-', $a);
$a2=str_replace(')','-', $a1);
//$a3=str_replace('=','-', $a2);

foreach( explode("\r\n" , $a2) as $row) {
$data_row = explode("-" , $row ) ;
$info = array();
$info['phone'] = $data_row[0] ;
if($data_row[1]=="IVR_PATH")
{
$info['date'] = $data_row[2].'/'.$data_row[3].'/'.$data_row[4] ;
$info['time'] = $data_row[5].':'.$data_row[6].':'.$data_row[7] ;
$info['status1'] = $data_row[8];}
if($data_row[1]=="Current")
{
$info['date'] = $data_row[2].'/'.$data_row[3].'/'.$data_row[4] ;
$info['time'] = $data_row[5].':'.$data_row[6].':'.$data_row[7] ;
$info['status2'] = $data_row[8];}
if($data_row[1]=="OFFSET")
{$info['date'] = $data_row[2].'/'.$data_row[3].'/'.$data_row[4] ;
$info['time'] = $data_row[5].':'.$data_row[6].':'.$data_row[7] ;
$info['status3'] = $data_row[8];}

$all_info[]= $info;
}
foreach ($all_info as $info) {
echo "טלפון: ";
echo $info['phone'];
echo "<br />";
echo "תאריך: ";
echo $info['date'];
echo "<br />";
echo "שעה: ";
echo $info['time'];
echo "<br />";
echo "<br />";
if($info['status1']=='')
{}else{
echo "שלוחה: ";
echo $info['status1'];
echo "<br />";}
if($info['status2']=='')
{}else{
echo "קובץ: ";
echo $info['status2'];
echo "<br />";}
if($info['status3']=='')
{}else{
echo "שניות: ";
echo $info['status3'];
echo "<br />";}
}
וזה מה שהוא מציג לי

קוד: בחירת הכל

טלפון: 05012345678
תאריך: 2018/07/21
שעה: 13:42:44

שלוחה: =2/
טלפון: 0534100432
תאריך: 2018/07/21
שעה: 13:42:44

קובץ: =199
טלפון: 0534100432
תאריך: 2018/07/21
שעה: 13:42:44

שניות: =2882
טלפון: 0534100432
תאריך: 2018/07/21
שעה: 13:42:44

שלוחה: =2/
טלפון: 05012345678
תאריך: 2018/07/21
שעה: 13:42:44

קובץ: =199
טלפון: 05012345678
תאריך: 2018/07/21
שעה: 13:42:44

שניות: =2882
ומה שאני רוצה זה שבכל מקטע יופיע... גם: הקובץ. וגם: השניות. וגם: הטלפון וכל זה יופיע במקטע אחד ולא לפי מה שנמצא למעלה.

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 16:40 27/06/2018

ל011371. קצת הבנתי אבל עדיין יש בעייה קטנה.
וזה מה שהגדרתי

קוד: בחירת הכל

<?php
$a="05012345678-IVR_PATH(2018-07-21-13-42-44)=2/
0534100432-Current(2018-07-21-13-42-44)=199
0534100432-OFFSET(2018-07-21-13-42-44)=2882
0534100432-IVR_PATH(2018-07-21-13-42-44)=2/
05012345678-Current(2018-07-21-13-42-44)=199
05012345678-OFFSET(2018-07-21-13-42-44)=2882";
$a1=str_replace('(','-', $a);
$a2=str_replace(')','-', $a1);
//$a3=str_replace('=','-', $a2);

foreach( explode("\r\n" , $a2) as $row) {
$data_row = explode("-" , $row ) ;
$info = array();
$info['phone'] = $data_row[0] ;
if($data_row[1]=="IVR_PATH")
{
$info['date'] = $data_row[2].'/'.$data_row[3].'/'.$data_row[4] ;
$info['time'] = $data_row[5].':'.$data_row[6].':'.$data_row[7] ;
$info['status1'] = $data_row[8];}
if($data_row[1]=="Current")
{
$info['date'] = $data_row[2].'/'.$data_row[3].'/'.$data_row[4] ;
$info['time'] = $data_row[5].':'.$data_row[6].':'.$data_row[7] ;
$info['status2'] = $data_row[8];}
if($data_row[1]=="OFFSET")
{$info['date'] = $data_row[2].'/'.$data_row[3].'/'.$data_row[4] ;
$info['time'] = $data_row[5].':'.$data_row[6].':'.$data_row[7] ;
$info['status3'] = $data_row[8];}

$all_info[]= $info;
}
foreach ($all_info as $info) {
echo "טלפון: ";
echo $info['phone'];
echo "<br />";
echo "תאריך: ";
echo $info['date'];
echo "<br />";
echo "שעה: ";
echo $info['time'];
echo "<br />";
echo "<br />";
if($info['status1']=='')
{}else{
echo "שלוחה: ";
echo $info['status1'];
echo "<br />";}
if($info['status2']=='')
{}else{
echo "קובץ: ";
echo $info['status2'];
echo "<br />";}
if($info['status3']=='')
{}else{
echo "שניות: ";
echo $info['status3'];
echo "<br />";}
}
וזה מה שהוא מציג לי

קוד: בחירת הכל

טלפון: 05012345678
תאריך: 2018/07/21
שעה: 13:42:44

שלוחה: =2/
טלפון: 0534100432
תאריך: 2018/07/21
שעה: 13:42:44

קובץ: =199
טלפון: 0534100432
תאריך: 2018/07/21
שעה: 13:42:44

שניות: =2882
טלפון: 0534100432
תאריך: 2018/07/21
שעה: 13:42:44

שלוחה: =2/
טלפון: 05012345678
תאריך: 2018/07/21
שעה: 13:42:44

קובץ: =199
טלפון: 05012345678
תאריך: 2018/07/21
שעה: 13:42:44

שניות: =2882
ומה שאני רוצה זה שבכל מקטע יופיע... גם: הקובץ. וגם: השניות. וגם: הטלפון וכל זה יופיע במקטע אחד ולא לפי מה שנמצא למעלה.
@011371 האם תוכל לעזור לי. עשיתי כל מה שאמרת אבל עדיין יש תקלה.

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: שאלה

שליחהעל ידי 011371 » 16:53 27/06/2018

את השורה

קוד: בחירת הכל

$info = array();
תזיז יותר מוקדם , עוד לפני תחילת הלולאה
ואת השורה

קוד: בחירת הכל

$all_info[]= $info;
תשנה קצת ל

קוד: בחירת הכל

$all_info[ $info['phone'] ]= $info;

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 18:41 27/06/2018

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

קוד: בחירת הכל

foreach ($all_info as $info) {
$listening="טלפון: $info[phone] ||| תאריך: $info[date] ||| שעה: $info[time] ||| שם הקובץ והסיפור: $info[status2] ||| כמות השניות שהאזין עד שניתק: $info[status3] ||| ";}
foreach ($all_info as $info) {
$listening1 = fopen("ahavat-israel.csv","w");
fwrite($listening1, $listening);
fclose($listening1);}
אשמח לעזרה
תודה

011371
הודעות: 997
הצטרף: 23:33 07/12/2017

Re: שאלה

שליחהעל ידי 011371 » 18:47 27/06/2018

למה הforeach השני מיועד?

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 18:52 27/06/2018

למה הforeach השני מיועד?
להציג את הנתונים בשרשרת כגון:

שם: מנחם
טלפון: 05012345678
מגורים: צפת

שם: אברהם פריד
טלפון: 01717171770
מגורים: 788 פרזידנט, ברוקלין ניו יורק.

וכך הולך וממשיך.

תוכל לעזור לי בעייה?

מנחם מענדל מענדי
הודעות: 980
הצטרף: 16:42 28/04/2016

Re: שאלה

שליחהעל ידי מנחם מענדל מענדי » 19:03 27/06/2018

זה מה שמעודכן לעכשיו. בecho רגיל זה מדפיס הכל אבל לתוך הקובץ רק מערך אחד.

קוד: בחירת הכל

$info = array();
foreach( explode("\r\n" , $abc2) as $row) {
$data_row = explode("-" , $row ) ;
$info[phone] = $data_row[0] ;
if($data_row[1]=="IVR_PATH")
{
$info[date] = $data_row[2].'/'.$data_row[3].'/'.$data_row[4] ;
$info[time] = $data_row[5].':'.$data_row[6].':'.$data_row[7] ;
$info[status1] = $data_row[8];}
if($data_row[1]=="Current")
{
$info[date] = $data_row[2].'/'.$data_row[3].'/'.$data_row[4] ;
$info[time] = $data_row[5].':'.$data_row[6].':'.$data_row[7] ;
$info[status2] = $data_row[8];}
if($data_row[1]=="OFFSET")
{$info[date] = $data_row[2].'/'.$data_row[3].'/'.$data_row[4] ;
$info[time] = $data_row[5].':'.$data_row[6].':'.$data_row[7] ;
$info[status3] = $data_row[8];}

$all_info[ $info[phone] ]= $info;
$listening1 = fopen("ahavat-israel.csv","w");
fwrite($listening1, "טלפון: $info[phone] ||| תאריך: $info[date] ||| שעה: $info[time] ||| שם הקובץ והסיפור: $info[status2] ||| כמות השניות שהאזין עד שניתק: $info[status3] ||| ");
fclose($listening1);
}


חזור אל “פורום PHP”

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים | 22 אורחים