Tag: php

内存消耗迭代脚本

我有用PHP编写的脚本和用Javascript编写的相同的脚本。 它迭代一百万次,每次将一个string剥离到一个数组中,并将第一个数组项赋给一个新的variables。 PHP是: class First { public function Iterate() { $count = 1000000; $test_string = ''; $test_array = ''; $first_word = ''; for($i=1; $i <= $count; $i++){ $test_string = 'This is a test string'; //could use explode but no explode in js $test_array = split(" ", $test_string); $first_word = $test_array[0]; } } } $first = […]

如何在node.js服务器上的PHP Web服务器和Socket.io之间创build握手?

我有一个websocket运行在服务器10.0.4.18端口8020上的node.js 4.0上。我使用socket.io v1.3,express和express-session实现了我的websocket。 项目定义 我需要能够在socket.io中为每个从PHP应用程序连接到它的用户创build一个会话。 在用户发送第一个HTTP请求之后,我将使用将从PHP传递给socket.io以及HTTP请求的令牌对其进行身份validation。 用户通过身份validation后,我需要在socket.io会话中保存一些个人数据,以便以后重用。 每次用户刷新PHP应用程序时,socket.io都需要知道已经创build的会话数据。 问题 每当用户重新载入/刷新“他/她所连接的地方”的PHP页面时,会话数据都将丢失。 服务器无法知道连接属于之前创build的会话XYZ。 我不知道如何创buildPHP和node.js之间的握手,其中两个服务器可以交换一个唯一的数据来绑定socket.io会话。 非常仔细的看问题 我在浏览器中打开了这个链接https://10.0.4.18:8020/set/MikeA 。 “这根据路由代码直接从node.js创build了一个会话” 然后我使用PHP连接到websocket,现在我可以看到会话坚持没有问题! 我能够在浏览器中打开多个选项卡,同样的会话在那里按预期。 这次工作的原因是因为urlhttps://10.0.4.18:8020/set/MikeAbuild立了一个会话,并将其绑定在我的浏览器和会话之间,从那里我能够从套接字读/写我的会话。 io使用express-socket.io-session包https://www.npmjs.com/package/express-socket.io-session 。 但是,如果我不使用手动创build会话会话将只适合一个页面加载。 每次页面重新加载时,会话都会被破坏,就像它从来没有存在过! 题 当从socket.io连接时,通过https://10.0.4.18:8020/set/MikeA连接到websocket时,我需要开发相同的行为。 如何在PHP服务器和socket.io之间build立一个握手,在每次重新加载PHP页面或打开一个新的浏览器选项卡时,两台服务器可以将会话数据绑定到正确的用户? 这是我的websocket代码 var app = require('express')(), https = require('https'), fs = require('fs'), session = require('express-session'), sharedsession = require("express-socket.io-session"), fileStore = require('session-file-store')(session), base64url = require('base64url'), cookieParser = require("cookie-parser"), env = require('./modules/config'); […]

Android,PHP和node.js之间的encryption和解密

我试图在Android上对Java中的string进行encryption,然后使用PHP和/或node.js将其解密 我已经尝试http://www.androidsnippets.com/encrypt-decrypt-between-android-and-php ,但只有前半部分返回的hexstring的作品。 我想要一个128位的密钥(如果可能,更高的AES)的encryptiontypes。 encryption密钥也需要configuration,所以我的问题可能与我如何填充string有关。 Java的 String.format("%1$-" + n + "s", s) PHP $key = str_pad($key,16); 完整的Java代码: package com.giggsey.test; import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import android.util.Log; public class SimpleCrypto { private String iv = "fedcba9876543210";//Dummy iv (CHANGE IT!) private IvParameterSpec ivspec; private SecretKeySpec keyspec; private Cipher cipher; private String SecretKey […]

从Node.js POST到PHP

我正在尝试从Node.js应用程序发布一些数据到PHP脚本。 目前我只是build立一个概念certificate,但我无法把实际的数据转移到PHP端。 请求通过,我得到200回来,但PHP认为$ _POST数组是空的。 这是我的节点代码: // simple end point just for testing exports.testPost = function(request, response) { data = request.body.data; postToPHP(data); response.end(data); } function postToPHP (data) { var http = require('http'); var options = { host : 'localhost', port : 8050, path : '/machines/test/index.php', method : 'POST', headers : { 'Content-Type' : 'application/json', 'Content-Length' : […]

用JavascriptparsingPHP会话

我最近进入使用node.js扩展我的网站,并已实现我需要一个会话处理程序为我的PHP会话。 现在,一切都变得很酷,而且很漂亮,node.js读取php会话,并且可以传播与php自己的会话。 我正在使用数据库会话,因此会话数据被保存到数据库中的一个字段。 但是我发现了一个小问题。 我试图将会话数据读入node.js,这真的是一个奇怪的string。 我已经能够得到每个会话variables的结构下降到: 'field_name'|'type':'length':'value'; 现在,在某些string中,值字段可能会丢失其他string的长度可能会丢失(当一个variables为空)。 types也可以比b,s,i多; 它也可以是N(NULL)。 我原本以为JS的一个巨大的翻译,但这似乎是一个非常错误的方式来做到这一点。 有没有人在这里试图提取在JS中的PHP会话variables,有没有什么样的脚本可以帮助? 也许有一个格式化的东西,我可以在PHP端使用,使我的生活在node.js更容易吗? 编辑:架构看起来像: { _id: { id: 'L:\u00c1\u009d\u008e\u00ad\u000e}<\u0002\u0000\u0000' } , session_id: 'a2clfnjhopv1srs5k5elgbfjv5' , user_id: 0 , session_data: 'logged|b:0;uid|i:0;server_key|N;AUTH_TIER2|b:0;email|s:0:"";cheese|s:6:"cheese";' , active: 1 , expires: 1278920567 } 这是用户会话的mongo dblogging。 需要翻译的字段是session_data。 有一种格式错误粘贴它时,因为stackoverflow不会格式化作为代码,当我尝试,使之出于某种原因。 我试图JSONfy领域之前,但它失去了它的types,并没有读空条目等,所以我就这样做了 谢谢,

node.js MySQL的性能

我正在比较node.js与PHP的写入性能到MySQL数据库。 我在这里使用Apache Benchmark,虚拟机中的linux mint,最新的mysql-server(5.5.43)以及MySQL的驱动程序。 我使用的代码是 server.js var http = require('http'); var mysql = require('mysql'); var server = http.createServer(function (req, res) { var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'root', database : 'testDB' }); connection.connect(); connection.query("INSERT INTO Persons (LastName, FirstName, Address, City) VALUES ('Futterkiste', 'Alfreds', 'Obere Str. 57', 'Berlin')", function(err, rows, […]

在Node.js中进行AESencryption在PHP中解密。 失败。

在node.js中,我使用build in函数来encryption数据: var text = "Yes"; var password = "123456"; var encrypt = crypto.createCipher('aes-256-cbc', password); var encryptOutput1 = encrypt.update(text, 'base64', 'base64'); var encryptOutput2 = encrypt.final('base64'); var encryptedText = encryptOutput1 + encryptOutput2; 输出(encryption文本)是:OnNINwXf6U8XmlgKJj48iA == 然后我用PHP解密: $encrypted = 'OnNINwXf6U8XmlgKJj48iA=='; (or $encrypted = base64_decode('OnNINwXf6U8XmlgKJj48iA==') ); $dtext2 = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_CBC); echo "Decrypted: $dtext2"; 我会得到一些有趣的人物,我不能解密它。 我尝试了/没有base64_decode或MCRYPT_RIJNDAEL_128 ..都失败了。 然后我检查PHP中的encryption方式,它与node.js的输出看起来有很大的不同。 […]

validation在php中生成的nodejs中的密码哈希值

我的php代码使用password_hash生成一个哈希,我将其存储在数据库中。 以下是PHP代码: $hash = password_hash($value, PASSWORD_BCRYPT, array('cost' => $cost)); 我想validation/检查在nodejs这个散列的密码。 我看到很多节点模块(bcrypt,phpass,node-bcrypt),但都是假的。 下面是在PHP中生成的示例哈希,我试图在nodejs中validation。 var hash = '$2y$08$9TTThrthZhTOcoHELRjuN.3mJd2iKYIeNlV/CYJUWWRnDfRRw6fD2'; var bcrypt = require('bcrypt'); bcrypt.compare("secret", hash, function(err, res) { console.log(res); }); (这里的秘密是真实的密码) 我目前的解决方法是通过节点调用一个PHP脚本来validation(对于任何需要解决方法的人) var exec = require('child_process').exec; var cmd = 'php verify.php password encryped_pasword'; exec(cmd, function (error, stdout, stderr) { // output is in stdout console.log(stdout); //If stdout has […]

节点JS中的会话

我如何维护节点JS中的SESSIONS? 例如,我想使用Node Js在SESSION中存储UserID。 我怎样才能做到这一点在节点JS? 我也可以在PHP中使用Node JS SESSION吗? 我想要 <?php $_SESSION['user'] = $userId; ?> 在节点Js。

C ++非阻塞代理检查/打开

我用C++编写的程序有问题。 我想打开一个空闲端口上的SOCKS5代理,然后检查是否可以(检查curl),然后释放I / O阻塞。 这是代码: C ++ main() { char* s_sockshost = "127.0.0.1"; socks_port = find_empty_port(); if(fork()) { // child process continues and opens a socks open_proxy(); } else { // parrent process just checks something then dies for(int i = 0; i < 20; i++) { proxytest = curlsockstest(s_sockshost,socks_port); if(proxytest) { break; } sleep(1); […]