Tag: php

为什么ISO-8601规范在小数时似乎被普遍忽略?

根据ISO-8601:2004(E)规范: 4.2.2.4带小数部分的表示法 如果特定应用需要,可以包括小时,分钟或秒的小数部分。 如果包含小数部分,则应省略低阶时间元素(如果有),小数部分应从整数部分除以ISO 31-0中指定的小数符号,即逗号[,]或句号[ ]。 其中,逗号是首选标志。 很简单。 因此,根据此规范,优选使用分隔整个和小数部分的逗号来编写分数秒,例如2014-01-01T00:00:00,123 。 然而,似乎几乎无处不在,只接受小数点(又名“完全停止”)! 现在我确定有一些语言或库将这一点考虑在内,我知道在很多情况下你可以自己提供格式的完整细节。 但这似乎是对规范的明显监督,似乎各种程序员都犯了同样的错误。 除了纯粹的人为错误之外,是否存在这种情况的原因? 以下是我测试的地方列表。 如果您找到其他人,请随意编辑问题以扩充我的列表。 谢谢。 .NET / C# DateTime dt = DateTime.Parse(“2014-01-01T00:00:00,123″); 抛出FormatException ,并显示消息“String未被识别为有效的DateTime”。 使用句点而不是逗号进行成功解析。 JavaScript日期对象 最新(在撰写本文时)Chrome,Internet Explorer,Firefox和Node.js进行了测试: var dt = new Date(‘2014-01-01T00:00:00,123’); 返回”Invalid Date” 。 使用句号代替工作正常。 带有moment.js的 JavaScript var valid = moment(“2014-01-01T00:00:00,123”).isValid(); 返回false 。 使用句点代替返回true 。 PHP echo strtotime(‘2014-01-01T00:00:00,123’); 返回一个空字符串。 使用句号代替工作正常。 ruby […]

尝试使用ZeroMQ构建分布式爬网程序

我刚刚开始学习ZeroMQ,并希望在学习的同时构建一个分布式webcrawler作为示例。 我的想法是有一个用PHP编写的“服务器”,它接受一个应该开始爬行的URL。 Worker(C#cli)必须抓取该URL,提取链接,并将它们推回到服务器上的堆栈中。 服务器不断将堆栈中的URL发送给工作人员。 也许redis会跟踪所有已爬网的url,因此我们不会多次抓取网站,并且能够提取当前进程的统计信息。 我想让服务器均匀地分配任务,注意新的/缺少的工作人员,并在工人没有响应时重新分配URL。 为什么PHP服务器:我对PHP非常熟悉,就是这样。 我不想让示例/测试项目更复杂。 为什么C#为minions:因为它在大多数Windows机器上运行。 我可以将可执行文件提供给各种朋友,他们可以执行它并帮助我测试我的项目。 抓取过程和redisfunction不是我的问题的一部分。 我的第一种方法是PUSH / PULL模式,它通常适用于我的场景,但不知道它的仆从。 我想我需要一个中间经销商/经纪人经纪人,并且必须为自己处理工人意识。 我发现了这个问题,但我不确定我是否理解答案…… 我想要一些提示如何强制zmq的东西。 经销商方法是否正确? 有没有办法获得自动工人意识? 我想我需要一些资源/示例,或者你认为我只需要深入研究zmq指南? 但是,朝正确方向的一些提示会很棒:) 干杯

如何为Unity3d设计我的在线游戏服务器?

最近,我一直在unity3d做多人游戏开发。 我非常清楚Unity的MasterServer如何在统一中工作。 但现在我想从头开始制作自己的游戏服务器。 我研究并了解我们可以使用Google云计算和应用引擎来制作我们自己的配对服务器和游戏主机服务器。 但我完全无能为力,我们如何开始编写服务器代码。 我们使用简单的http请求和json结果吗? 或者还有其他技术可以实时与FPS类型的游戏一起使用。 我不认为发送http请求并等待它的结果可以足够快,可以在FPS类型的游戏中工作,每秒我们发送超过100个数据。 起初我想到编写PHP脚本并将其托管到某个URL,然后向该URL发送请求并等待其响应。 但我发现如果我使用这个过程然后只是从服务器获得一个响应它将花费我至少0.5秒或更多。 在这种情况下,游戏中会有很多延迟。 我知道游戏服务器可以在某种tcp或udp网络上运行。 但我的问题是,我应该为服务器提供什么样的应用程序来接收这些数据并快速发送处理结果。

如何从ASP.Net访问PHP Web服务?

我正在尝试在C#ASP.Net Web应用程序中使用Web服务。 该服务是用PHP构建的,位于一些不受我控制的远程服务器上,因此我无法对其进行修改以将元数据或其他内容添加到其中。 当我在Visual Studio 2008中使用“添加Web引用”选项时,收到以下错误: HTML文档不包含Web服务发现信息。 在尝试添加以下Web服务时。 https://subreg.forpsi.com/robot2/subreg_command.php?wsdl Web服务function在Visual Studio 2008中公开并显示。但是我无法添加对它的引用以在ASP.Net应用程序中使用。 t3Service“说明 方法__construct() create_contact() get_contact() get_domain_info() get_last_error_code() get_last_error_msg() get_NSSET() get_owner_mail() 登录 ( ) register_domain() register_domain_with_admin_contacts() renew_domain() request_sendmail() send_auth_info() transfer_domain() 我还尝试了wsdl.exe方法,检索xml并将其复制到wsdl文件并生成代理类。 但是wsdl输出包含警告,生成的代理类会跳过公开的函数并生成如下所示的内容: // CODEGEN:命名空间’urn:t3’中的操作绑定’create_contact’被忽略。 use = encoded消息中的每个消息部分都必须指定一个类型。 // CODEGEN:忽略命名空间’urn:t3’中的操作绑定’get_contact’。 use = encoded消息中的每个消息部分都必须指定一个类型。 // CODEGEN:命名空间’urn:t3’中的操作绑定’get_domain_info’被忽略。 use = encoded消息中的每个消息部分都必须指定一个类型。 // CODEGEN:命名空间’urn:t3’中的操作绑定’get_last_error_code’被忽略。 use = encoded消息中的每个消息部分都必须指定一个类型。 // CODEGEN:命名空间’urn:t3’中的操作绑定’get_last_error_msg’被忽略。 use […]

PHP相当于.net AES加密

我正在与客户进行数据交换集成,他们发送给我的数据使用他们的C# encrypt方法encrypt (如下)。 我的应用程序正在运行PHP 5.3,我需要一个等效的代码来解密他们发送的数据。 我有PHP代码,但它不能正确解密客户端数据。 显然,我在加密/解密方法,IV键或其他方面犯了一些错误。 谁能发现错误? 谢谢。 C#代码(来自我的客户): using System; using System.Security.Cryptography; using System.Text; using System.IO; public class Program { public static void Main() { var text = “this is a plain string”; var enc = Program.Encrypt(text); Console.WriteLine(enc); Console.WriteLine(Program.Decrypt(enc)); } public static string Encrypt(string clearText) { var EncryptionKey = “1234567890123456”; byte[] clearBytes = […]

C#PHP AES 256 CBC加密

您好我正在尝试使用PHP和AES 256 CBC模式加密我服务器上的文件/字符串,因为字符串以’\ 0’结尾我可以轻松地从AES添加的填充中删除填充,但是文件我不能,因为其中一些包含空字节。 在发送数据之前,我将其编码为base64字符串。 这是我的C#decrypt函数 internal static byte[] __AES_DECRYPT(byte[] input, string _key, string _iv) { var myRijndael = new RijndaelManaged() { Padding = PaddingMode.Zeros, Mode = CipherMode.CBC, KeySize = 256, BlockSize = 256 }; byte[] key = Encoding.ASCII.GetBytes(_key); byte[] iv = Encoding.ASCII.GetBytes(_iv); var decryptor = myRijndael.CreateDecryptor(key, iv); var sEncrypted = input; var fromEncrypt = […]

Windows通知服务:401尝试在PHP中创建Toast通知时无效令牌

我一直在尝试向模拟器发送Toast通知。 我创建了Windows Phone 8.1应用程序并将其与商店中的应用程序相关联。 之后我设法获得了我必须用来调用通道URI的访问令牌。 当我尝试使用通道URI和访问令牌发送Toast通知时,我收到此错误。 Bearer error=”invalid_request”,error_description=”Invalid token” 这是我创建的php测试代码。 ‘client_credentials’, ‘client_id’ => ‘0’, ‘client_secret’ => ‘Q’, ‘scope’ => ‘notify.windows.com’ ); $fields_string = “”; foreach($fields as $key=>$value) { $fields_string .= $key.’=’.$value.’&’; } rtrim($fields_string, ‘&’); curl_setopt($tokenRequest, CURLOPT_RETURNTRANSFER, true); curl_setopt($tokenRequest,CURLOPT_POST, count($fields)); curl_setopt($tokenRequest,CURLOPT_POSTFIELDS, $fields_string); $output = json_decode(curl_exec($tokenRequest)); curl_close($tokenRequest); echo “”; var_dump($output); echo “”; $accessToken = $output->{‘access_token’}; //SEND PUSH […]

preg_match到.NET等价物

我在PHP中有以下代码: if (preg_match(‘@^[a-z0-9/._-]+$@i’, $script) && !preg_match(‘@([.][.])|([.]/)|(//)@’, $script)) 我假设if语句的谓词对字符串js/core.js返回true。 我怎么把它翻译成C#? 愚蠢的翻译如下: if(Regex.IsMatch(script,”@^[a-z0-9/._-]+$@i”) && !Regex.IsMatch(script,”@([.][.])|([.]/)|(//)@”)) 但我怀疑@符号具有与之相关的含义,我无法深究。 .NET正则表达式的翻译会很好,但我完全熟悉.NET正则表达式,因此对相关语法差异的解释就足够了。 非常感谢。

使用PHP和SOAP的Web服务的C#DateTime类型

我使用C#编写的Web服务,在我的(客户端)端使用PHP。 SOAP __getTypes返回一个期望参数为dateTime birthDate 。 我尝试以不同的方式发送参数,比如 $date = new DateTime(“now”); $wsclient->SomeFunction(array($date->format(“Ymd\TH:i:s”)); 或$date->format(‘c’)我甚至把它写成字符串1932-11-12T00:00:00等等。 我没有得到soapexception,但是收到birthDate值的函数返回是0001-01-01T00:00:00 。 我和Web服务的开发人员开了个会,他向我展示了当他将System.DateTime类型变量传递给它正常工作的函数时,但是他在C#本地完成了它,而不是通过Web服务,只是在做 date = new DateTime(1999,9,9,0,0,0); SomeFunction(date); 我想知道的是如何从PHP传递c# DateTime类型。 我想我正在使用$date->format(‘c’)或$date->format(“Ymd\TH:i:s”) 。 我只想确保这部分代码是正确的,如果是这样,请在其他地方搜索问题。 更新:我们得到的是:他们改变了代码。 数据类型保持不变(DateTime),我不知道他们在那里做了什么,但如果我得到任何信息,我会保持这篇文章是最新的。 几年后:他们根本不知道他们在做什么,我遇到了问题,这是我无法解决的问题。 如果WSDL请求dateTime并且你正确地发送它(SOAP没有抛出exception)并且它不能正常工作,那么你应该在另一边寻找问题,当然。 他们制作了这些以及其他一些技巧,并指责我获得一些时间,因为他们的工作不是完整或不完整。 他们做得很好,因为我是新人,只有一家公司的网络开发人员,我20岁,并且对于那些从我出生以来几乎一直担任开发人员的人并不十分自信。 最后,当我们在项目的最后一部分工作时,他们说我们花了太多时间来完成它并将其交给其他开发人员。 最后一部分很明显,这个项目没有前途,因为架构是错误的。 该项目尚未发布(3年后),尽管他们在列表2公司(我知道)切换到客户端实施它。 这是我职业生涯中最糟糕的机会。

C# – Json POST请求已发送但未被PH​​P服务器接收

我正在从C#windowsform应用程序向OpenShift(Redhat)上托管的PHP服务器发送HTTP请求。 我使用POST方法,使用Json数据。 问题是: 数据似乎被正确发送(我看到wireshark中的数据包) php脚本正确启动,我在日志中看到收到了一条POST消息 但没有收到任何POST数据.. 这是C#代码 : string json = “{\”user\”:\”test\”,” + “\”n\”:\”2\”}”; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(“http://……..rhcloud.com/webservices.php”); request.Method = “POST”; request.ContentType = “application/json”; request.ContentLength = json.Length; using (var streamWriter = new StreamWriter(request.GetRequestStream())) { streamWriter.Write(json); streamWriter.Close(); var httpResponse = (HttpWebResponse)request.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); Debug.WriteLine(“R : ” + […]