首页 / PHP / 从PHP连接到OrientDB
从PHP连接到OrientDB
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从PHP连接到OrientDB,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2308字,纯文字阅读大概需要4分钟。
内容图文
我想为OrientDB的二进制API编写PHP适配器.
但是我需要一些在PHP中具有原始套接字通信经验的人的帮助 – 我似乎无法超越将PHP连接到OrientDB的第一个障碍.
如果有人使用套接字来体验这个,我将不胜感激:
http://code.google.com/p/orient/issues/detail?id=126
如果我们可以通过第一个障碍并实际发送一个数据包(该页面底部的简化示例 – 请向下滚动到最后),我当然可以编写适配器.
如果我这样做,这当然会作为开源发布.
希望有人可以帮助我开始?
谢谢!
2010年11月20日
引用PEAR的Net_Socket,我最终得到了与早期尝试的相同的代码,使用fsockopen()和常规的PHP流函数.
我仍然无处可去.服务器根本没有反应,即使设置了5秒的超时,脚本也会进入深度睡眠状态,直到超出一般的PHP脚本时间限制才会出现.
这是代码:
<?php
header('Content-type: text/plain');
error_reporting(E_ALL | E_NOTICE | E_WARNING);
$txid = 123;
$db = 'demo';
$username = 'writer';
$password = 'writer';
$packet = "\x05". # 1 byte
pack('i',$txid). # 4 bytes
pack('i',strlen($db)).$db. # string
pack('i',strlen($username)).$username. # string
pack('i',strlen($password)).$password; # string
hex_dump($packet);
$addr = '127.0.0.1';
$port = 2424;
$timeout = 5;
$errstr = '';
$errno = 0;
$socket = fsockopen($addr, $port, $errno, $errstr, $timeout);
stream_set_blocking($socket, 1);
socket_set_timeout($socket, $timeout);
var_dump($socket);
fwrite($socket, $packet);
$response = '';
while (!feof($socket))
$response .= fread($socket, 1024);
hex_dump($response);
fclose($socket);
这是我用来检查我提交的数据包的hex_dump()函数:
<?php
function hex_dump($data, $newline="\n")
{
static $from = '';
static $to = '';
static $width = 16; # number of bytes per line
static $pad = '.'; # padding for non-visible characters
if ($from==='')
{
for ($i=0; $i<=0xFF; $i++)
{
$from .= chr($i);
$to .= ($i >= 0x20 && $i <= 0x7E) ? chr($i) : $pad;
}
}
$hex = str_split(bin2hex($data), $width*2);
$chars = str_split(strtr($data, $from, $to), $width);
$offset = 0;
foreach ($hex as $i => $line)
{
echo sprintf('%6X',$offset).' : '.implode(' ', str_split($line,2)) . ' [' . $chars[$i] . ']' . $newline;
$offset += $width;
}
}
根据OrientDB的作者Luca Garulli的说法,我提交的数据包看起来是正确的.所以别的什么不对……
这可能是一个Windows问题吗?我在Windows上使用PHP 5.3,在Apache下…
解决方法:
实际上,我忘记了究竟是什么问题 – 但我确实让它发挥了作用.
如果其他人需要查看工作实现(无论是对于OrientDB还是其他东西),请随时查看公共存储库:
https://github.com/mindplay-dk/OrientDB-PHP
内容总结
以上是互联网集市为您收集整理的从PHP连接到OrientDB全部内容,希望文章能够帮你解决从PHP连接到OrientDB所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。