בעיה בהקראת טקסט דרך api
-
@שמעון1144
תעלה את הקוד php שכתבת ואולי נוכל לעזור לך -
@שמעון1144
למה בread אתה צריך הקשות? -
@nyh
הסרתי את ה read-t ועדיין לא עובד, אחרי המתנה של כמה שניות מחזיר אותי לתפריט הראשי -
@אהרן-שובקס
להלן הקוד<?php $url = "https://ims.data.gov.il/sites/default/files/isr_country.xml"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true ); curl_setopt($ch, CURLOPT_ENCODING, "gzip,deflate"); $response = curl_exec($ch); curl_close($ch); $response = iconv('Windows-1255', 'UTF-8', $response); $resq = $response; $rnp = ""; $pos1 = strpos($resq, "<IssueDateTime>"); if ($pos1) { $resq = strstr($resq, "<IssueDateTime>"); $pos2 = strpos($resq, "</IssueDateTime>"); $upd = substr($resq, strlen("<IssueDateTime>"), $pos2 - strlen("<IssueDateTime>") ); } else { header('Content-Type: text/xml'); print($response); exit(); } $tx3 = "Weather in Hebrew</ElementName>"; $pos3 = strpos($resq, $tx3); if ($pos3) { $resq = strstr($resq, $tx3); $resq = strstr($resq, "<ElementValue>"); $pos4 = strpos($resq, "</ElementValue>"); $upd = substr($resq, strlen("<ElementValue>"), $pos4 - strlen("<ElementValue>") ); $rnp = $rnp . $upd ; } else { exit(); } $pos3 = strpos($resq, $tx3); if ($pos3) { $resq = strstr($resq, $tx3); $resq = strstr($resq, "<ElementValue>"); $pos4 = strpos($resq, "</ElementValue>"); $upd = substr($resq, strlen("<ElementValue>"), $pos4 - strlen("<ElementValue>") ); $rnp = $rnp . " למחרת: " . $upd; } else { exit(); } //$rnp = str_replace("\r\n", "" , $rnp); //$rnp = str_replace(".", " " , $rnp); //$rnp = str_replace(":", " " , $rnp); //$rnp = str_replace(",", " " , $rnp); $rnp = str_replace(" ", " " , $rnp); $rnp = trim($rnp); //echo "read=t-" . $rnp; echo $rnp; exit(); ?>
-
@שמעון1144
ככה זה יעבוד לך:<?php $url = "https://ims.data.gov.il/sites/default/files/isr_country.xml"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true ); curl_setopt($ch, CURLOPT_ENCODING, "gzip,deflate"); $response = curl_exec($ch); curl_close($ch); $response = iconv('Windows-1255', 'UTF-8', $response); $resq = $response; $rnp = ""; $pos1 = strpos($resq, "<IssueDateTime>"); if ($pos1) { $resq = strstr($resq, "<IssueDateTime>"); $pos2 = strpos($resq, "</IssueDateTime>"); $upd = substr($resq, strlen("<IssueDateTime>"), $pos2 - strlen("<IssueDateTime>") ); } else { header('Content-Type: text/xml'); print($response); exit(); } $tx3 = "Weather in Hebrew</ElementName>"; $pos3 = strpos($resq, $tx3); if ($pos3) { $resq = strstr($resq, $tx3); $resq = strstr($resq, "<ElementValue>"); $pos4 = strpos($resq, "</ElementValue>"); $upd = substr($resq, strlen("<ElementValue>"), $pos4 - strlen("<ElementValue>") ); $rnp = $rnp . $upd ; } else { exit(); } $pos3 = strpos($resq, $tx3); if ($pos3) { $resq = strstr($resq, $tx3); $resq = strstr($resq, "<ElementValue>"); $pos4 = strpos($resq, "</ElementValue>"); $upd = substr($resq, strlen("<ElementValue>"), $pos4 - strlen("<ElementValue>") ); $rnp = $rnp . " למחרת: " . $upd; } else { exit(); } $rnp = str_replace("\r\n", "" , $rnp); $rnp = str_replace(".", " " , $rnp); $rnp = str_replace(":", " " , $rnp); $rnp = str_replace(",", " " , $rnp); $rnp = str_replace(" ", " " , $rnp); $rnp = trim($rnp); echo "id_list_message=t-$rnp."; ?>
-
@אהרן-שובקס
עדיין לא עובד. -
@שמעון1144
נכון כי יש ההגבלה על ההמרה מה שכן תוכל לפצל את הטקסט לכמה פסקאות וככה זה יעבוד לך
https://f2.freeivr.co.il/post/71074
מה שהכי נכון לעשות לכאורה זה
לפצל את כל המחרוזת לפי רווח ואז לספור 150 לקבל את הערך ה 150 ואם זה לעשות פיצול מחרוזת ע"י המילה -
@אהרן-שובקס
קיצרתי את כל הסטרינג (זה יוצא בערך 90 תווים), ועדיין לא עובד,
כשאני עושה סתם echo עם סטרינג קבוע, זה עובד מצויין גם אם הסטרינג מעל 300 תווים
כנראה שהבעיה להקריא סטרינג שמגיע ממשתנה -
@שמעון1144
שים את הקוד הבא:$rnp = preg_replace( "/\r|\n/", "", $rnp );
-
@אהרן-שובקס
עובד מצוין
תודה רבה!!! -
@שמעון1144
סתם ככה למה לך לעבוד קשה?
יכלת לכתוב את כל הקוד הזה בשמונה שורות:
(לא בא לייאש)<?php $url=simplexml_load_file("https://ims.data.gov.il/sites/default/files/isr_country.xml"); $rnp = $url->Location->LocationData->TimeUnitData->Element[3]->ElementValue; $rnp = preg_replace( "/\r|\n/", "", $rnp ); $rnp = str_replace(".", " " , $rnp); $rnp = str_replace(":", " " , $rnp); echo "id_list_message=t-$rnp."; ?>