我是一个完整的Perl newb,但我确信学习Perl比在awk中解析如何解析XML更容易.我想从这个数据集中解析.sgm文件:
http://kdd.ics.uci.edu/databases/reuters21578/reuters21578.html
这是十年前来自newswire的20,000条路透社文章的集合,是针对某些类型的文本处理的标准测试集.为了简化我的perl测试,我从第一个文件中抓取了前几百行并制作了test.sgm,直到我的脚本正常工作.它开头是这样的:
<!DOCTYPE lewis SYSTEM "lewis.dtd">
<REUTERS TOPICS="YES" LEWISSPLIT="TRAIN" CGISPLIT="TRAINING-SET" OLDID="5544" NEWID="1">
<DATE>26-FEB-1987 15:01:01.79</DATE>
<TOPICS><D>cocoa</D></TOPICS>
<PLACES><D>el-salvador</D><D>usa</D><D>uruguay</D></PLACES>
<PEOPLE></PEOPLE>
<ORGS></ORGS>
<EXCHANGES></EXCHANGES>
<COMPANIES></COMPANIES>
<UNKNOWN>
C T
f0704reute
u f BC-BAHIA-COCOA-REVIEW 02-26 0105</UNKNOWN>
<TEXT>
<TITLE>BAHIA COCOA REVIEW</TITLE>
<DATELINE> SALVADOR, Feb 26 - </DATELINE><BODY>Showers continued throughout the week in
the Bahia cocoa zone, alleviating the drought since early
January and improving prospects for the coming temporao,...
Run Code Online (Sandbox Code Playgroud)
我使用了来自http://www.xml.com/pub/a/2001/05/16/perlxml.html的perl脚本作为示例,最后得到了这个,extract.pl:
use XML::DOM;
my $file = $ARGV[0];
my $parser = XML::DOM::Parser->new();
my $doc = $parser->parsefile($file); …Run Code Online (Sandbox Code Playgroud) 当我升级到jQuery 1.5.1(或1.5)时ajax(),我站点中的所有调用都会在错误选项函数中生成"parserror".还有一个脚本错误
Uncaught SyntaxError: Unexpected token : jquery-1.5.1.min.js:16
Run Code Online (Sandbox Code Playgroud)
使用1.4.4,该站点一直在运行w/o错误.这是来自其中一个ajax()调用的代码.
$.ajax({
url: '/CustomerGroup/Get',
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (grp) {
if (grp != null) {
clear();
group = grp;
load(grp);
} else{
showError(
'Customer Group',
'Whoops, error getting customer group information. Please contact support@myorg.com and include your username and date/time of the error.'
);
}
},
error: function (x,s,e) {
showError(
'Customer Group',
'Whoops, error getting customer group information. Please contact support@myorg.com and include your …Run Code Online (Sandbox Code Playgroud) 我需要使用日期模式"yyyy-MM-dd"从输入字符串解析日期,如果日期将以任何其他格式出现,则抛出错误.
这是我解析日期的代码段:
private void validateDate() throws MyException {
Date parsedDate;
String DATE_FORMAT = "yyyy-MM-dd";
try{
parsedDate = new SimpleDateFormat(DATE_FORMAT).parse(getMyDate());
System.out.println(parsedDate);
} catch (ParseException e) {
throw new MyException(“Error occurred while processing date:” + getMyDate());
}
}
Run Code Online (Sandbox Code Playgroud)
当我在myDate中输入像"2011-06-12"这样的字符串时,我会得到输出"Thu Sep 29 00:00:00 EEST 2011",这很好.
当我发送一个不正确的字符串,如"2011-0612"时,我收到错误的预期.
当我试图传递一个仍然有两个"连字符"但字符数错误的字符串时,问题就开始了.例:
输入字符串"2011-06-1211"结果"Tue Sep 23 00:00:00 EEST 2014".
输入字符串"2011-1106-12"结果"Mon Feb 12 00:00:00 EET 2103".
我无法更改字符串日期的输入格式.
我怎么能避免呢?
我试图用node.js创建一个Facebook应用程序,但是我在检查已签名的请求时遇到了麻烦.每次我发出请求时,程序都会抛出一个SyntaxError:Unexpected token ILLEGAL:
undefined:1
":"721599476"}
^^
SyntaxError: Unexpected token ILLEGAL
Run Code Online (Sandbox Code Playgroud)
罪魁祸首功能如下:
function parse_signed_request(signed_request, secret) {
encoded_data = signed_request.split('.',2);
// decode the data
sig = encoded_data[0];
json = base64url.decode(encoded_data[1]);
data = JSON.parse(json); // ERROR Occurs Here!
// check algorithm - not relevant to error
if (!data.algorithm || data.algorithm.toUpperCase() != 'HMAC-SHA256') {
console.error('Unknown algorithm. Expected HMAC-SHA256');
return null;
}
// check sig - not relevant to error
expected_sig = crypto.createHmac('sha256',secret).update(encoded_data[1]).digest('base64').replace(/\+/g,'-').replace(/\//g,'_').replace('=','');
if (sig !== expected_sig) {
console.error('Bad signed JSON Signature!');
return …Run Code Online (Sandbox Code Playgroud) 我正在使用PHP json_encode()来返回一些由jQuery检索的数据ajax():
简化的JS:
$.ajax({
dataType: 'json',
contentType: 'application/json',
cache: false,
type: 'POST',
url: './api/_imgdown.php',
error: function(jqXHR, textStatus, errorThrow) {
console.log(jqXHR, textStatus, errorThrow);
},
success: function(data, textStatus, jqXHR) {
console.log(data, textStatus, jqXHR);
}
});
Run Code Online (Sandbox Code Playgroud)
PHP是:
header('Content-Type: application/json; charset=UTF-8');
//default apiResponse
$apiResponse = [
"status" => 1,
"message" => "success",
"data" => null
];
Run Code Online (Sandbox Code Playgroud)
然后当php运行我的代码时,它会通过添加这些数据结束:
$apiResponse['data'][] = [
"mid" => (int)$mid,
"card_type" => $card_type,
"header_size" => (int)$headers['Content-Length'],
"saved_size" => (int)filesize($imgSavePath),
"saved_path" => $imgSavePath
];
//spit out the JSON
echo …Run Code Online (Sandbox Code Playgroud) 我正在编写一个错误记录服务,该服务将集成到我的服务器上运行的网站上,这将通过电子邮件向我发送错误批次等.
所以我一直试图找出是否有办法处理致命错误和解析错误,但是不使用这些技巧来处理PHP代码(输出缓冲区,关闭函数).我很乐意在我的PHP代码之外编写一些C代码或其他东西来处理它.如果可能的话,我还想发布重定向(我的网站使用输出缓冲,因此不应该发送任何标头).
我很确定这可以通过PHP模块完成,但我从来没有写过,也不知道从哪里开始.
我有一段代码,我正在尝试使用PHP 5.2.14版.它不兼容吗?我运行以下,
jailshell-3.2$ php -l /XYZ/functions.php
Run Code Online (Sandbox Code Playgroud)
它给出了:
解析错误:语法错误,意外的T_FUNCTION,在第2115行的/XYZ/functions.php中期待')'错误解析/XYZ/functions.php
代码是:
2114 $range = array_map(
2115 function (DatePeriod $p) use ($vt2) {
2116 $res = array();
Run Code Online (Sandbox Code Playgroud) 我收到这个错误:
解析错误:语法错误,意外'.',期待','或';' 在第5行的/var/(...)/config.php中
使用此(简化)代码:
<?php
class Config
{
public static $somevar = "Date: " . date('Y');
}
?>
Run Code Online (Sandbox Code Playgroud)
我认为这是有效的PHP,但我猜不是......我在这里做错了什么?谢谢!
我只想知道T_在解析错误之前是否有任何理由/故事可供使用
parse error : unexpected `T_`ELSE in ... blah blah blah
parse error : Unexpected `T_`IF in ....blah
parse error : unexpected `T_`VAR
parse error : unexpected `T_`STRING
Run Code Online (Sandbox Code Playgroud)
还有很多.
你能提供任何澄清的链接吗?此外,是否有任何其他前缀用于错误显示然后请分享.
当我在解析迁移到AWS + MongoLab后从iOS App发送推送通知时,我收到错误 - 未经授权:需要主密钥(代码:0,版本:1.12.0),我如何解决它,以及我使用iOS解析代码用于通过Mobile Hub发送通知和AWS SNS服务的消息.
在解析迁移到AWS之前,推送通知发送完美,在迁移解析后使用此链接推送到aws https://mobile.awsblog.com/post/Tx3NE69QDHI7LJK/Migrating-from-Parse-Push-to-Amazon-SNS,我是得到此错误 - 未经授权:需要主密钥(代码:0,版本:1.12.0)即使我也使用一个信号而不是SNS来消除此错误,仍然我得到相同的错误,它在我测试时工作正常使用上述链接的步骤-4通知.下面是我在应用程序中使用的iOS解析代码 -
PFQuery*queryInstallation = [PFInstallation query]; [queryInstallation whereKey:kESInstallationUserKey matchesQuery:query];
PFPush *push = [[PFPush alloc] init];
[push setQuery:queryInstallation];
NSDictionary *data = [NSDictionary dictionaryWithObjectsAndKeys:
message, @"alert",
@"Increment", @"badge",
@"homerun.caf", @"sound",
@"m", @"p",
nil];
[push setData:data];
[push sendPushInBackgroundWithBlock:^(BOOL succeeded, NSError *error)
{
if (error != nil)
{
NSLog(@"SendPushNotification send error.");
}
}];
Run Code Online (Sandbox Code Playgroud)
我主要使用客户端代码,但在某些方面也使用云端代码.