Php 错误丢失;通过jquery发送序列化xml时,jquery中的before语句

Php 错误丢失;通过jquery发送序列化xml时,jquery中的before语句,php,jquery,xml,json,Php,Jquery,Xml,Json,我在var data=上得到了这个错误;下面的代码行。控制台还引发数据未定义错误。如果在数据周围加上引号,则此错误消失,但第一个错误保持不变 编辑 我试着去看,但没有发现任何问题 这是script.php <?php var_dump($_POST); ?> 这是来自twitter的xml var data =O:16:"SimpleXMLElement":5:{s:2:"id";s:43:"tag:search.twitter.com,2005:search/#DIYSe_D";

我在var data=上得到了这个错误;下面的代码行。控制台还引发数据未定义错误。如果在数据周围加上引号,则此错误消失,但第一个错误保持不变

编辑 我试着去看,但没有发现任何问题

这是script.php

<?php
var_dump($_POST);
?>
这是来自twitter的xml

var data =O:16:"SimpleXMLElement":5:{s:2:"id";s:43:"tag:search.twitter.com,2005:search/#DIYSe_D";s:4:"link";a:4:{i:0;O:16:"SimpleXMLElement":1:{s:11:"@attributes";a:3:{s:4:"type";s:9:"text/html";s:4:"href";s:45:"http://search.twitter.com/search?q=%23DIYSe_D";s:3:"rel";s:9:"alternate";}}i:1;O:16:"SimpleXMLElement":1:{s:11:"@attributes";a:3:{s:4:"type";s:20:"application/atom+xml";s:4:"href";s:58:"http://search.twitter.com/search.atom?q=%23DIYSe_D&rpp=100";s:3:"rel";s:4:"self";}}i:2;O:16:"SimpleXMLElement":1:{s:11:"@attributes";a:3:{s:4:"type";s:37:"application/opensearchdescription+xml";s:4:"href";s:40:"http://search.twitter.com/opensearch.xml";s:3:"rel";s:6:"search";}}i:3;O:16:"SimpleXMLElement":1:{s:11:"@attributes";a:3:{s:4:"type";s:20:"application/atom+xml";s:4:"href";s:84:"http://search.twitter.com/search.atom?q=%23DIYSe_D&rpp=100&since_id=7856019371724800";s:3:"rel";s:7:"refresh";}}}s:5:"title";s:25:"#DIYSe_D - Twitter Search";s:7:"updated";s:20:"2010-11-24T21:53:28Z";s:5:"entry";a:3:{i:0;O:16:"SimpleXMLElement":7:{s:2:"id";s:44:"tag:search.twitter.com,2005:7552404006371328";s:9:"published";s:20:"2010-11-24T21:53:28Z";s:4:"link";a:2:{i:0;O:16:"SimpleXMLElement":1:{s:11:"@attributes";a:3:{s:4:"type";s:9:"text/html";s:4:"href";s:50:"http://twitter.com/_smir/statuses/7552404006371328";s:3:"rel";s:9:"alternate";}}i:1;O:16:"SimpleXMLElement":1:{s:11:"@attributes";a:3:{s:4:"type";s:9:"image/png";s:4:"href";s:67:"http://s.twimg.com/a/1289849896/images/default_profile_5_normal.png";s:3:"rel";s:5:"image";}}}s:5:"title";s:59:"#DIYse_D DELIVERAB: twitter messages 2_inc 1, 19th OCT 2010";s:7:"content";s:248:"<a href="http://search.twitter.com/search?q=%23DIYse_D" 
onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#DIYse_D');"><b>#DIYse_D</b></a> DELIVERAB: twitter messages 2_inc 1, 19th OCT 2010";s:7:"updated";s:20:"2010-11-24T21:53:28Z";s:6:"author";O:16:"SimpleXMLElement":2:{s:4:"name";s:13:"_smir (Smeer)";s:3:"uri";s:24:"http://twitter.com/_smir";}}i:1;O:16:"SimpleXMLElement":7:{s:2:"id";s:44:"tag:search.twitter.com,2005:7551711354822656";s:9:"published";s:20:"2010-11-24T21:50:42Z";s:4:"link";a:2:{i:0;O:16:"SimpleXMLElement":1:{s:11:"@attributes";a:3:{s:4:"type";s:9:"text/html";s:4:"href";s:58:"http://twitter.com/Babar_Shahzad/statuses/7551711354822656";s:3:"rel";s:9:"alternate";}}i:1;O:16:"SimpleXMLElement":1:{s:11:"@attributes";a:3:{s:4:"type";s:9:"image/png";s:4:"href";s:103:"http://a1.twimg.com/profile_images/1090185625/29465_391454998679_533808679_3864564_6071800_n_normal.jpg";s:3:"rel";s:5:"image";}}}s:5:"title";s:58:"#DIYse_D DELIVERAB: twitter messages 2_inc2, 24th OCT 2010";s:7:"content";s:247:"<a href="http://search.twitter.com/search?q=%23DIYse_D" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#DIYse_D');"><b>#DIYse_D</b></a> DELIVERAB: twitter messages 2_inc2, 24th OCT 
2010";s:7:"updated";s:20:"2010-11-24T21:50:42Z";s:6:"author";O:16:"SimpleXMLElement":2:{s:4:"name";s:32:"Babar_Shahzad (Babar Shahzad Ch)";s:3:"uri";s:32:"http://twitter.com/Babar_Shahzad";}}i:2;O:16:"SimpleXMLElement":7:{s:2:"id";s:44:"tag:search.twitter.com,2005:7550668919283712";s:9:"published";s:20:"2010-11-24T21:46:34Z";s:4:"link";a:2:{i:0;O:16:"SimpleXMLElement":1:{s:11:"@attributes";a:3:{s:4:"type";s:9:"text/html";s:4:"href";s:58:"http://twitter.com/Babar_Shahzad/statuses/7550668919283712";s:3:"rel";s:9:"alternate";}}i:1;O:16:"SimpleXMLElement":1:{s:11:"@attributes";a:3:{s:4:"type";s:9:"image/png";s:4:"href";s:103:"http://a1.twimg.com/profile_images/1090185625/29465_391454998679_533808679_3864564_6071800_n_normal.jpg";s:3:"rel";s:5:"image";}}}s:5:"title";s:53:"#DIYse_D  DELIVERAB: twitter messages 1, 9th OCT 2010";s:7:"content";s:242:"<a href="http://search.twitter.com/search?q=%23DIYse_D" onclick="pageTracker._setCustomVar(2, 'result_type', 'recent', 3);pageTracker._trackPageview('/intra/hashtag/#DIYse_D');"><b>#DIYse_D</b></a>  DELIVERAB: twitter messages 1, 9th OCT 2010";s:7:"updated";s:20:"2010-11-24T21:46:34Z";s:6:"author";O:16:"SimpleXMLElement":2:{s:4:"name";s:32:"Babar_Shahzad (Babar Shahzad Ch)";s:3:"uri";s:32:"http://twitter.com/Babar_Shahzad";}}}};
这是我的json等效代码,但它不起作用。我之所以把它放在这里,是因为很多人(如果不是所有人的话)都在指我将json添加到这段代码中,即OP,实际上我在这里想要的是OP将xml发送到php,因为json在我之前不起作用 *这段代码不会引发控制台错误,但失败警报是ouput*curl正在发送结果,我在HTML中ajax之前的测试php块中测试了这一点

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">

 <html>
 <?php
 function searchResults($q) {

  $host = "http://search.twitter.com/search.atom?q=" . urlencode( $q ) . "&rpp=100";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $host);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

//Raw xml
  $result = curl_exec($ch);
  curl_close($ch);
  $xml = simplexml_load_string($result);
  return json_encode($xml);
  } 
 ?>
 <head>
 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js">
 </script>
 </head>
 <body>
 <script type="text/javascript"> var msg_top = <?php echo searchResults('windows');?>;
 </script>
 <script type="text/javascript">
$(document).ready(function() 
{
   $.ajax({
   url: "script.php",
   type: "POST",
   dataType: "json",
   data: msg_top,
   success: function(msg){
   alert("success");
  }
 });
alert("failure");
});
</script>
</body>
</html>
);为什么是;在这里最后一个 编辑: 这是我不明白的 ; var数据=; 你为什么打电话;在…内为什么会有一个;在

之后;为什么是;在这里最后一个 编辑: 这是我不明白的 ; var数据=;
你为什么打电话;在…内为什么会有一个;在

之后,您将发出包含PHP序列化方法原始返回值的Javascript代码

此返回值不是有效的Javascript语法,因此出现语法错误

你需要把它包装成一个字符串,并希望和祈祷它永远不包含引号或换行符


另外,您可能希望将数据变量传递给$.ajax,而不是文本字符串数据。

您正在发送包含PHP序列化方法原始返回值的Javascript代码

此返回值不是有效的Javascript语法,因此出现语法错误

你需要把它包装成一个字符串,并希望和祈祷它永远不包含引号或换行符

另外,您可能希望将数据变量传递给$.ajax,而不是文本字符串数据。

serialize不输出JavaScript

请尝试。serialize不会输出JavaScript

试试看。

试试看

还有一些多余的分号;在第一个?>之后,您应该将其删除。

试试看



还有一些多余的分号;在第一个?>之后,您应该删除它。

也许可以尝试引用它,如var data=??不应该是data:data,是data:data,@ameer,不,它没有任何意义affect@Malachi,如果我使用数据,则会引发错误,“数据未定义”可能会尝试引用它,如var data=??不应该是data:data,是data:data,@ameer,不,它没有任何意义affect@Malachi,如果我使用数据,则会引发错误,“数据未定义”searchResult方法中的数据,即php对象包含的数据是xml对象。那么我应该将其编码为json吗?是的,我想是的,XML代码可能包含一些特殊字符,json_encode将通过使用反斜杠转义来帮助您摆脱这些字符。如果我不能很好地理解你,我很抱歉,但我希望我能理解;不,对不起,非常感谢你的帮助。事实上,我花了大约3天的时间发送json,但这不起作用。现在我正在尝试将xml对象发送到php。如果我必须使用json,那么我可以从searchResult函数,即php函数发送结果,也可以发送添加到我使用的OP json代码中的jsonI,如果您发现任何问题,您可以看到searchResult方法中的数据,即php对象包含的数据是xml对象。那么我应该将其编码为json吗?是的,我想是的,XML代码可能包含一些特殊字符,json_encode将通过使用反斜杠转义来帮助您摆脱这些字符。如果我不能很好地理解你,我很抱歉,但我希望我能理解;不,对不起,非常感谢你的帮助。事实上,我花了大约3天的时间发送json,但这不起作用。现在我正在尝试将xml对象发送到php。如果我必须使用json,那么我可以从searchResult函数,即php函数发送结果,也可以发送我使用的添加到OP json代码中的jsonI,如果您发现任何问题,您可以看到它是的,我删除了它,实际上它是在编辑后留下的。我在脚本bec中调用它,我想为PHPVaryes分配JSVAR值,我删除了它,实际上它在编辑后离开了。我在脚本bec中调用它,我想为php变量指定js var值,实际上我在这里尝试将xml发送到php。对于同一个问题,我花了将近3天的时间研究json,但json不起作用。我可能有一个干净的代码,但它不工作的方式。我可以把它放在OP里,你可以看到,也许可以解决一些问题。我在数据中添加了引号,好像我删除了那些控制台错误“数据未定义”@Exceptable:这是因为变量未定义。由于语法错误,如果您的意思是我应该在php赋值语句周围加引号,那么我就这样做了&它没有任何影响。如果您能看到我在OP中添加的json代码,那将非常感谢,除了var_dump prints array0{}act之外,它没有显示任何错误
这正是我在这里试图将xml发送到php的目的。对于同一个问题,我花了将近3天的时间研究json,但json不起作用。我可能有一个干净的代码,但它不工作的方式。我可以把它放在OP里,你可以看到,也许可以解决一些问题。我在数据中添加了引号,好像我删除了那些控制台错误“数据未定义”@Exceptable:这是因为变量未定义。由于语法错误,如果您的意思是我应该在php赋值语句周围加引号,那么我就这样做了&它没有任何影响。如果您能看到我在OP中添加的json代码,那将非常感谢,除了var_dump prints array0{}之外,它没有显示任何错误
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">

 <html>
 <?php
 function searchResults($q) {

  $host = "http://search.twitter.com/search.atom?q=" . urlencode( $q ) . "&rpp=100";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $host);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

//Raw xml
  $result = curl_exec($ch);
  curl_close($ch);
  $xml = simplexml_load_string($result);
  return json_encode($xml);
  } 
 ?>
 <head>
 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js">
 </script>
 </head>
 <body>
 <script type="text/javascript"> var msg_top = <?php echo searchResults('windows');?>;
 </script>
 <script type="text/javascript">
$(document).ready(function() 
{
   $.ajax({
   url: "script.php",
   type: "POST",
   dataType: "json",
   data: msg_top,
   success: function(msg){
   alert("success");
  }
 });
alert("failure");
});
</script>
</body>
</html>
var data="<?php echo json_encode(serialize($msg));?>";
var data=<?php echo json_encode(serialize($msg));?>;