这听起来很简单但我无法弄清楚如何使用简单的SELECT语句来返回GMT中的当前时间.
我一直在尝试使用CONVERT_TZ()根据服务器时区和GMT时区将NOW()转换为GMT,但由于某种原因,当我放入文本时区时它返回NULL.我得到结果的唯一方法是实际放入偏移量,这对于应该是一个非常简单的操作来说太复杂了.这就是我的意思:
mysql> SELECT CONVERT_TZ(NOW(),@@global.system_time_zone,'GMT');
NULL
mysql> SELECT CONVERT_TZ(NOW(),'PST','GMT');
NULL
mysql> SELECT CONVERT_TZ(NOW(),'-08:00','+00:00');
2010-02-13 18:28:22
Run Code Online (Sandbox Code Playgroud)
我只需要一个简单的查询来返回GMT中的当前时间.在此先感谢您的帮助!
我们在我们的网站上拥有超过10,000名注册用户,并希望将每个用户与Facebook帐户与他们的Facebook ID相关联.我们的网站使用WWW :: Facebook :: API CPAN模块在我们网站上的所有其他Facebook相关操作.我的问题是,有没有一种方法可以提供特定用户的电子邮件地址(他们在注册时提供给我们)并让Facebook API返回匹配用户的Facebook user_id?要明确的是,我们不希望通过Facebook API获取用户的电子邮件,而是希望使用他们的电子邮件地址查找它们.如果有的话,看一下这将如何工作的代码片段真的很有帮助.如果可以通过我们已经使用的CPAN模块完成,则可以获得奖励积分.在此先感谢您的帮助!
我有一个Perl脚本,它使用LWP :: UserAgent下载一个网页,然后使用正则表达式进行处理.问题是网页的常规HTML部分没有返回给LWP :: UserAgent,因为该网站认识到浏览器没有安装Flash,而是返回HTML,提示我们下载Flash而不是相应的HTML我们需要解析.
如何使LWP :: UserAgent似乎将闪存安装到我们要求该页面的Web服务器上?我正在使用以下代码初始化LWP :: UserAgent:
use LWP::UserAgent;
my $ua = LWP::UserAgent->new(cookie_jar => { },requests_redirectable => [ ]);
$ua->agent('Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:9.9.9.9) Gecko/20079999 Firefox/2.0.0.1');
$ua->timeout(10);
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
我知道这里有很多帖子,但似乎都没有解决我们遇到的问题.到目前为止,我认为我已按照iOS参考库验证商店收据文档中的规定正确设置了所有内容.但是,在我们对AppStore验证URL的POST请求期间,我们收到了21002"java.lang.NullPointerException",因此我必须做错事.
我注意到的一些问题可能导致这种情况:
1)收据不确定性
该文档指出我们的iPhone应用程序应该只将收据传递给我们的服务器进行验证,但没有说明确切的收据.起初我以为它可能是下面的整个JSON对象,但现在我想知道收据是否只是"购买信息"字段.
Encoded Receipt
ewoJInNpZ25hdHVyZSIgPSAiQWx1SFVsb0dxejZjOVNvSlFVejF0OThhemI2WjJCb2N3WVBhK2ZVYllmdUI5ZE5RQkViV2dTNXVIUUluakdSQ2RScVkxUHhQY2cvMk1kSVlONEN2anc0RkNuc0JqT0d2NGFqNjVBczQ2SERseGd4WjdlTElGUXcrcG9QVlpTZHlEWWF6NHBPaGxxNVBmVXNqdmlZNENYd3VaQzkrSTBHdk55bVZWNkhnR2FCRUFBQURWekNDQTFNd2dnSTdvQU1DQVFJQ0NHVVVrVTNaV0FTMU1BMEdDU3FHU0liM0RRRUJCUVVBTUg4eEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUtEQXBCY0hCc1pTQkpibU11TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlFRjFkR2h2Y21sMGVURXpNREVHQTFVRUF3d3FRWEJ3YkdVZ2FWUjFibVZ6SUZOMGIzSmxJRU5sY25ScFptbGpZWFJwYjI0Z1FYVjBhRzl5YVhSNU1CNFhEVEE1TURZeE5USXlNRFUxTmxvWERURTBNRFl4TkRJeU1EVTFObG93WkRFak1DRUdBMVVFQXd3YVVIVnlZMmhoYzJWU1pXTmxhWEIwUTJWeWRHbG1hV05oZEdVeEd6QVpCZ05WQkFzTUVrRndjR3hsSUdsVWRXNWxjeUJUZEc5eVpURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NXNWpMakVMTUFrR0ExVUVCaE1DVlZNd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZMEFNSUdKQW9HQkFNclJqRjJjdDRJclNkaVRDaGFJMGc4cHd2L2NtSHM4cC9Sd1YvcnQvOTFYS1ZoTmw0WElCaW1LalFRTmZnSHNEczZ5anUrK0RyS0pFN3VLc3BoTWRkS1lmRkU1ckdYc0FkQkVqQndSSXhleFRldngzSExFRkdBdDFtb0t4NTA5ZGh4dGlJZERnSnYyWWFWczQ5QjB1SnZOZHk2U01xTk5MSHNETHpEUzlvWkhBZ01CQUFHamNqQndNQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURWUjBqQkJnd0ZvQVVOaDNvNHAyQzBnRVl0VEpyRHRkREM1RllRem93RGdZRFZSMFBBUUgvQkFRREFnZUFNQjBHQTFVZERnUVdCQlNwZzRQeUdVakZQaEpYQ0JUTXphTittVjhrOVRBUUJnb3Foa2lHOTJOa0JnVUJCQUlGQURBTkJna3Foa2lHOXcwQkFRVUZBQU9DQVFFQUVhU2JQanRtTjRDL0lCM1FFcEszMlJ4YWNDRFhkVlhBZVZSZVM1RmFaeGMrdDg4cFFQOTNCaUF4dmRXLzNlVFNNR1k1RmJlQVlMM2V0cVA1Z204d3JGb2pYMGlreVZSU3RRKy9BUTBLRWp0cUIwN2tMczlRVWU4Y3pSOFVHZmRNMUV1bVYvVWd2RGQ0TndOWXhMUU1nNFdUUWZna1FRVnk4R1had1ZIZ2JFL1VDNlk3MDUzcEdYQms1MU5QTTN3b3hoZDNnU1JMdlhqK2xvSHNTdGNURXFlOXBCRHBtRzUrc2s0dHcrR0szR01lRU41LytlMVFUOW5wL0tsMW5qK2FCdzdDMHhzeTBiRm5hQWQxY1NTNnhkb3J5L0NVdk02Z3RLc21uT09kcVRlc2JwMGJzOHNuNldxczBDOWRnY3hSSHVPTVoydG04bnBMVW03YXJnT1N6UT09IjsKCSJwdXJjaGFzZS1pbmZvIiA9ICJld29KSW1sMFpXMHRhV1FpSUQwZ0lqUXlORGMwTWpVeE1DSTdDZ2tpYjNKcFoybHVZV3d0ZEhKaGJuTmhZM1JwYjI0dGFXUWlJRDBnSWpFd01EQXdNREF3TURFMk1qUTRNVEFpT3dvSkluQjFjbU5vWVhObExXUmhkR1VpSUQwZ0lqSXdNVEV0TURNdE1EZ2dNREk2TkRRNk16Y2dSWFJqTDBkTlZDSTdDZ2tpY0hKdlpIVmpkQzFwWkNJZ1BTQWlZMjl0TG1OdmJYQmhibmt1UVhCd1RtRnRaUzR4TURBd01EQWlPd29KSW5SeVlXNXpZV04wYVc5dUxXbGtJaUE5SUNJeE1EQXdNREF3TURBeE5qSTBPREV3SWpzS0NTSnhkV0Z1ZEdsMGVTSWdQU0FpTVNJN0Nna2liM0pwWjJsdVlXd3RjSFZ5WTJoaGMyVXRaR0YwWlNJZ1BTQWlNakF4TVMwd015MHdPQ0F3TWpvME5Eb3pOeUJGZEdNdlIwMVVJanNLQ1NKaWFXUWlJRDBnSW1OdmJTNWpiMjF3WVc1NUxrRndjRTVoYldVaU93b0pJbUoyY25NaUlEMGdJakV1TUM0eElqc0tmUT09IjsKCSJwb2QiID0gIjEwMCI7Cgkic2lnbmluZy1zdGF0dXMiID0gIjAiOwp9
Decoded Receipt
{
"signature" = "AluHUloGqz6c9SoJQUz1t98azb6Z2BocwYPa+fUbYfuB9dNQBEbWgS5uHQInjGRCdRqY1PxPcg/2MdIYN4Cvjw4FCnsBjOGv4aj65As46HDlxgxZ7eLIFQw+poPVZSdyDYaz4pOhlq5PfUsjviY4CXwuZC9+I0GvNymVV6HgGaBEAAADVzCCA1MwggI7oAMCAQICCGUUkU3ZWAS1MA0GCSqGSIb3DQEBBQUAMH8xCzAJBgNVBAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEzMDEGA1UEAwwqQXBwbGUgaVR1bmVzIFN0b3JlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA5MDYxNTIyMDU1NloXDTE0MDYxNDIyMDU1NlowZDEjMCEGA1UEAwwaUHVyY2hhc2VSZWNlaXB0Q2VydGlmaWNhdGUxGzAZBgNVBAsMEkFwcGxlIGlUdW5lcyBTdG9yZTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMrRjF2ct4IrSdiTChaI0g8pwv/cmHs8p/RwV/rt/91XKVhNl4XIBimKjQQNfgHsDs6yju++DrKJE7uKsphMddKYfFE5rGXsAdBEjBwRIxexTevx3HLEFGAt1moKx509dhxtiIdDgJv2YaVs49B0uJvNdy6SMqNNLHsDLzDS9oZHAgMBAAGjcjBwMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUNh3o4p2C0gEYtTJrDtdDC5FYQzowDgYDVR0PAQH/BAQDAgeAMB0GA1UdDgQWBBSpg4PyGUjFPhJXCBTMzaN+mV8k9TAQBgoqhkiG92NkBgUBBAIFADANBgkqhkiG9w0BAQUFAAOCAQEAEaSbPjtmN4C/IB3QEpK32RxacCDXdVXAeVReS5FaZxc+t88pQP93BiAxvdW/3eTSMGY5FbeAYL3etqP5gm8wrFojX0ikyVRStQ+/AQ0KEjtqB07kLs9QUe8czR8UGfdM1EumV/UgvDd4NwNYxLQMg4WTQfgkQQVy8GXZwVHgbE/UC6Y7053pGXBk51NPM3woxhd3gSRLvXj+loHsStcTEqe9pBDpmG5+sk4tw+GK3GMeEN5/+e1QT9np/Kl1nj+aBw7C0xsy0bFnaAd1cSS6xdory/CUvM6gtKsmnOOdqTesbp0bs8sn6Wqs0C9dgcxRHuOMZ2tm8npLUm7argOSzQ==";
"purchase-info" = "ewoJIml0ZW0taWQiID0gIjQyNDc0MjUxMCI7Cgkib3JpZ2luYWwtdHJhbnNhY3Rpb24taWQiID0gIjEwMDAwMDAwMDE2MjQ4MTAiOwoJInB1cmNoYXNlLWRhdGUiID0gIjIwMTEtMDMtMDggMDI6NDQ6MzcgRXRjL0dNVCI7CgkicHJvZHVjdC1pZCIgPSAiY29tLmNvbXBhbnkuQXBwTmFtZS4xMDAwMDAiOwoJInRyYW5zYWN0aW9uLWlkIiA9ICIxMDAwMDAwMDAxNjI0ODEwIjsKCSJxdWFudGl0eSIgPSAiMSI7Cgkib3JpZ2luYWwtcHVyY2hhc2UtZGF0ZSIgPSAiMjAxMS0wMy0wOCAwMjo0NDozNyBFdGMvR01UIjsKCSJiaWQiID0gImNvbS5jb21wYW55LkFwcE5hbWUiOwoJImJ2cnMiID0gIjEuMC4xIjsKfQ==";
"pod" = "100";
"signing-status" = "0";
}
Run Code Online (Sandbox Code Playgroud)
2)INVALID JSON
数据在base64中编码,一旦解码就应该在有效的JSON对象中提供信息,但是从我看到的对象肯定是无效的JSON.Apple似乎使用"=",其中":"应该是和";" 其中","应该是:
{
"item-id" = "424742510";
"original-transaction-id" = "1000000001624810";
"purchase-date" = "2011-03-08 02:44:37 Etc/GMT";
"product-id" = "com.company.AppName.100000";
"transaction-id" = "1000000001624810";
"quantity" = "1";
"original-purchase-date" = "2011-03-08 02:44:37 Etc/GMT";
"bid" = "com.company.AppName";
"bvrs" = "1.0.1";
}
Run Code Online (Sandbox Code Playgroud)
我想知道我们收到错误的原因之一可能是因为他们提供的收据不是有效的JSON所以当我们发布数据进行验证时,服务器拒绝它.我们应该解码所有内容,将对象修复为有效的JSON,重新编码,然后将其提交给Apple进行验证吗?
我希望那些有这项工作的人可以指出我在上述两个问题上的正确方向,或者更好地提供正确的CURL调用,它会收到一个有效的响应,可以完全解决我的问题.
在此先感谢您的帮助!
我目前使用Perl Magick http://www.imagemagick.org/script/perl-magick.php,perl的界面难懂的http://www.imagemagick.org,处理和转换的照片,我们的网站用户上传.我希望能够捕获附加到这些图像的一些EXIF数据,并且我已经能够使用以下命令使用Image Magick的命令行界面来弄清楚如何执行此操作:
/usr/bin/identify -format "%[EXIF:*]" image.jpg
Run Code Online (Sandbox Code Playgroud)
返回特定照片的以下EXIF信息:
exif:ApertureValue=29/8
exif:ColorSpace=1
exif:CompressedBitsPerPixel=3/1
exif:CustomRendered=0
exif:DateTime=2002:10:08 19:49:52
exif:DateTimeDigitized=2002:09:29 14:03:55
exif:DateTimeOriginal=2002:09:29 14:03:55
exif:DigitalZoomRatio=1/1
exif:ExifImageLength=307
exif:ExifImageWidth=410
exif:ExifOffset=192
exif:ExifVersion=48, 50, 50, 48
exif:ExposureBiasValue=0/1
exif:ExposureMode=0
exif:ExposureTime=1/1000
exif:Flash=24
exif:FlashPixVersion=48, 49, 48, 48
exif:FNumber=7/2
exif:FocalLength=227/32
exif:FocalPlaneResolutionUnit=2
exif:FocalPlaneXResolution=235741/32
exif:FocalPlaneYResolution=286622/39
exif:Make=Canon
exif:MaxApertureValue=12742/4289
exif:MeteringMode=5
exif:Model=Canon PowerShot S30
exif:ResolutionUnit=2
exif:SceneCaptureType=0
exif:SensingMethod=2
exif:ShutterSpeedValue=319/32
exif:Software=Adobe Photoshop 7.0
exif:WhiteBalance=0
exif:XResolution=180/1
exif:YResolution=180/1
Run Code Online (Sandbox Code Playgroud)
我已经尝试了大约100种方法来从Perl Magick获得相同的结果但是无法弄清楚如何通过我在命令行上使用的相同参数来使其正常工作.以下是我尝试过的几种变体,其中没有一种似乎有效:
use Image::Magick;
my $image = Image::Magick->new;
my $exif = $image->Identify('image.jpg');
print $exif;
$image->Read('image.jpg');
$exif = $image->Get('format "%[EXIF:*]"');
print $exif; …Run Code Online (Sandbox Code Playgroud) 我们在我们的网站上使用Facebook Connect与WWW :: Facebook :: API CPAN模块一起在用户请求时向我们的用户发布新闻源.
到目前为止,我们已经能够使用以下代码成功更新用户的状态:
use WWW::Facebook::API;
my $facebook = WWW::Facebook::API->new(
desktop => 0,
api_key => $fb_api_key,
secret => $fb_secret,
session_key => $query->cookie($fb_api_key.'_session_key'),
session_expires => $query->cookie($fb_api_key.'_expires'),
session_uid => $query->cookie($fb_api_key.'_user')
);
my $response = $facebook->stream->publish(
message => qq|Test status message|,
);
Run Code Online (Sandbox Code Playgroud)
但是,当我们尝试更新上面的代码,以便我们可以发布包含附件和操作链接的新闻源故事,如Stream.Publish的Facebook API文档中所指定的那样,我们尝试了大约100种不同的方法,但没有取得任何成功.
根据CPAN文档,我们所要做的就是将我们的代码更新为类似下面的内容并相应地传递附件和操作链接,这似乎不起作用:
my $response = $facebook->stream->publish(
message => qq|Test status message|,
attachment => $json,
action_links => [@links],
);
Run Code Online (Sandbox Code Playgroud)
例如,我们传递上述参数如下:
$json = qq|{ 'name': 'i\'m bursting with joy', 'href': ' …Run Code Online (Sandbox Code Playgroud) 我们的网站为我们的会员提供了一个上传表格,用于上传我们随后存储并允许他们分享的照片.我们使用一个简单的表单POST来启用上传,然后使用Perl的CGI.pm处理文件.这是我们的Apache设置:
Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我们用户中有一小部分用户遇到了上传超时和失败的问题.以下是我们的Apache日志中报告失败的内容:
(104)Connection reset by peer: Error reading request entity data, referer: http://domain.com/upload/photo
Run Code Online (Sandbox Code Playgroud)
起初我们认为这可能是由于没有将$ CGI :: POST_MAX设置得太低而导致大型照片被拒绝.即使将其增加到100 MB,它仍然会发生.我们无法复制这个问题,似乎没有任何押韵或理由使用户遇到问题,因为它发生在不同的浏览器,操作系统等.我们也不确定这是否是一个与之相关的问题Perl或我们的Apache设置.
我很感激任何可能导致这种情况发生的建议以及如何解决问题的建议.在此先感谢您的帮助!
我们目前正在使用以下列格式提供日期时间的第三方API:
Sat Mar 06 09:00:00 ICST 2010
Fri Feb 19 19:30:00 JDT 2010
Fri Feb 19 19:30:00 PST 2010
Run Code Online (Sandbox Code Playgroud)
但是,我们希望在标准日期时间字段中将这些日期时间对象存储在MySQL中,该字段需要以下格式:
YYYY-MM-DD HH:MM:SS
Run Code Online (Sandbox Code Playgroud)
现在我们正在使用以下代码报告某些时区的错误,例如KDT,JDT和ICST:
use Date::Manip;
use DateTime;
use DateTime::Format::DateManip;
my $date = ParseDate($time);
$date = DateTime::Format::DateManip->parse_datetime($date);
eval{ $time = $date->strftime("%Y-%m-%d %H:%M:%S"); };
Run Code Online (Sandbox Code Playgroud)
您能否建议更好地实现上面的Perl代码,将日期时间对象从API转换为我们服务器上的正确格式和时间,以便插入MySQL日期时间字段?
在此先感谢您的帮助和建议!
我编写了一个Perl脚本,它作为每日crontab作业运行,通过CURL将文件上传到Amazon S3.我希望通过电子邮件发送给我的cron作业的输出工作正常,但我不希望该电子邮件包含与CURL上载相关的消息(只有我的脚本输出的那些消息).以下是我现在在每日电子邮件中看到的与CURL相关的消息:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 230M 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 230M 0 0 0 544k 0 1519k 0:02:35 --:--:-- 0:02:35 1807k
0 230M 0 0 0 1744k 0 1286k 0:03:03 0:00:01 0:03:02 1342k
1 230M 0 0 1 2880k 0 1219k 0:03:13 0:00:02 0:03:11 1250k
1 230M 0 0 1 4016k 0 1198k 0:03:17 0:00:03 0:03:14 1218k …Run Code Online (Sandbox Code Playgroud) 我们在同一台服务器上运行了几个不同的网站,每个网站都访问1个特定的Web服务,每个网站都有自己独特的API密钥.遗憾的是,Web服务具有基于IP地址(不是API密钥)的每日限制,因此,虽然我们的每个站点都低于其每日限制,但它们超过了IP限制.当通过Web浏览器访问时,每个网站都运行在不同的静态IP地址上,但是当perl脚本在每个网站用户帐户下运行时,它们的出站IP地址是相同的.
我的问题是如何才能使每个perl脚本使用特定站点的正确IP地址,以便每个人都可以保持在Web服务的每日限制内?更简单的说,perl脚本如何使用LWP perl模块更改它正在进行的调用的出站IP地址?解释很好,但代码示例会更好.
在此先感谢您的帮助!
perl ×7
datetime ×2
facebook ×2
mysql ×2
apache ×1
app-store ×1
convert-tz ×1
cron ×1
curl ×1
exif ×1
file-upload ×1
flash ×1
gmt ×1
imagemagick ×1
ip-address ×1
lwp ×1
timeout ×1