Почему мой скрипт перестает выполняться, когда я помещаю переменную в foreach и для цикла

#javascript #php

#javascript #php

Вопрос:

Когда я помещаю

 $link15 = $link15.$U;
$newpdf1 =  $newpdf1.$_SESSION['arrayvalue']."rnrn".$link15."rnrn";
$link15 = "";
  

эта строка кода в foreach / для цикла сценарий останавливается после отображения одного результата. и когда я удаляю эту строку кода, она запускается.
Ниже приведен полный сценарий:

  for ($i = 0, $count = count($arr1); $i < $count; $i  ) {
    print $arr1[$i]."rnrn";
    $_SESSION['arrayvalue'] = "$arr1[$i]";
    $in = $arr1[$i];
    $in = str_replace(' ',' ',$in); // space is a  
     $result15 = httpGet("https://www.google.com/cse?cx=003255331468891741234:xxxxxxxxxxamp;client=google-csbeamp;output=xml_no_dtdamp;q='.$in.'amp;oq='.$in.'");
    //echo $result15;
    //this is to get perticular tag/node value 
    $dom = new DomDocument;
    $dom->preserveWhiteSpace = FALSE;
    $dom->loadXML($result15);
    $N = $dom->getElementsByTagName('U');
    foreach ($N as $U) {
       echo $U->nodeValue, PHP_EOL."<br/>";
       $link15 = $link15.$U;
    }
    $newpdf1 =  $newpdf1.$_SESSION['arrayvalue']."rnrn".$link15."rnrn";
    $link15 = "";
 }
  

Где я делаю ошибку при конкатенации или любую другую ошибку.
Спасибо!

Комментарии:

1. Почему Javascript помечен тегом?

Ответ №1:

Исходя из вашего кода, $ U является объектом, но вы пытаетесь объединить его в $link15.

Попробуйте изменить это:

$link15 = $link15.$U;

К этому:

$link15 = $link15.$U-> Значение узла;

Ответ №2:

Вы не можете объединить объект со строкой

попробуйте приведенный ниже код (я изменил то, что я обращаюсь к определенному ключу с именем «nodeValue» в вашем объекте $ U . Если вы хотите добавить другую, измените ее соответствующим образом, вам необходимо получить доступ к конкретному ключу или связке ключей в зависимости от вашего требования)

 for ($i = 0, $count = count($arr1); $i < $count; $i  ) 
{
print $arr1[$i]."rnrn";
$_SESSION['arrayvalue'] = "$arr1[$i]";
$in = $arr1[$i];
$in = str_replace(' ',' ',$in); // space is a  
 $result15 = httpGet("https://www.google.com/cse?cx=0032553314688917412345:xxxxxxxxxamp;client=google-csbeamp;output=xml_no_dtdamp;q='.$in.'amp;oq='.$in.'");
//echo $result15;
//this is to get perticular tag/node value 
$dom = new DomDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->loadXML($result15);
$N = $dom->getElementsByTagName('U');
foreach ($N as $U) {
   echo $U->nodeValue, PHP_EOL."<br/>";
   // here you need to access the particular key or bunch of keys depending on your requirement
   $link15 = $link15.$U->nodeValue;
            }
$newpdf1 =  $newpdf1.$_SESSION['arrayvalue']."rnrn".$link15."rnrn";
$link15 = "";

}
  

Надеюсь, это поможет.