PHP COM 难题 调用COM?总感觉不是很稳定的东西 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 尝试使用$com->GenerateSigningKeys(&$privkey, &$pubkey); asp中使用的vbs和vb是一家的,数据传递的方式也相似而php就完全与他们不同了如果仍然不行,请考虑修改com应用。通过属性传递数据 把$com->GenerateSigningKeys($privkey,$pubkey); 改成 $com->GenerateSigningKeys(&$privkey,&$pubkey); 也是得不到值 这个com是Microsoft的DRM SDK里面的,也不可能去修改他 try:$com->GenerateSigningKeys('$privkey','$pubkey'); $com->GenerateSigningKeys('$privkey','$pubkey');还是取不到 那就不太好办了,可以这样检查一下既然asp可以Response.Write pubkey那么表示pubkey的数据结构是符合vbs的。用$privkey = ' ';$pubkey = ' ';$com->GenerateSigningKeys(&$privkey,&$pubkey);这样的格式调用1、检查$pubkey是否发生了变化2、使用strlen函数检查$pubkey的长度3、当确认了上面两项时,用for($i=0; $i<strlen($pubkey); $i++) printf(" %02x", $pubkey[$i]);贴出输出的结果,同时贴出asp中输出的结果 <?$privkey = ' ';$pubkey = ' ';$com = new COM("wmrmobjs.WMRMKeys"); $com->GenerateSigningKeys(&$privkey,&$pubkey); $seed = $com->GenerateSeed(); echo "<br>"; echo "Seed=".$seed; echo "<hr>";$pubkey = ' ';for($i=0; $i<strlen($pubkey); $i++) { printf(" %02x", $pubkey[$i]);}?>得到结果:Seed=KOaAfvi6OvlivCU40vcxvwRML60IK2GutG8X8A1i-------------------------------------------------------------------------------- 00 00 00 00 00 00 00 00 00 00 00 00 00 <% dim keysobjsdim privkeydim pubkeydim seedSet keysobj= CreateObject("wmrmobjs.WMRMKeys")keysobj.GenerateSigningKeys privkey, pubkeyseed = keysobj.GenerateSeed()Response.Write privkeyResponse.Write "<br>"Response.Write pubkeyResponse.Write "<br>"Response.Write seed%>得到结果:6wpyb1n0dzeYkJYZF8Z16yayihk=Jx!s2W0EvYjbQmEPmhG5cgzyXGIIHMuboqqwk8Myxq5ngu69TTaYAw==syLKWKUJ1ngEl9Y2gS6QS6yo7FW4eT7y6szKtB1W 上面的PHP代码写错了<?$privkey = ' ';$pubkey = ' ';echo "before strlen:".strlen($pubkey)."<br>";$com = new COM("wmrmobjs.WMRMKeys"); $com->GenerateSigningKeys(&$privkey,&$pubkey); $seed = $com->GenerateSeed(); echo "<br>"; echo "Seed=".$seed; echo "<hr>";echo "after strlen:".strlen($pubkey)."<br>";for($i=0; $i<strlen($pubkey); $i++) { printf(" %02x", $pubkey[$i]);}?>得到结果:before strlen:13Seed=X9MsVvzK7TzDkSxY7pfxFPefapYDlt9EtMYoiFB6--------------------------------------------------------------------------------after strlen:1300 00 00 00 00 00 00 00 00 00 00 00 00 我有朋友在PHP5上已经成功调用了,我用的是PHP4.4.1,不知道是不是PHP4有问题 64位的win2008上怎么配置ZendOptimizer-3.3.3 PHP如何从COM组件中获取返回的字符串? 不同的浏览器登陆后显示的字体大小不一致,如何适配一下 mysql fulltext 不工作。 如何给后台程序加个后“后门” PHP如何查看目前电脑里的所有cookie文件? 哥们帮忙看一下关于验证码代码的问题 我看到很多网站大量使用document.write()来输出东西,是为了什么? 各位大虾,谁知道如何用php读取access中字段类型为OLE对象的二进制图片? 关于seesion问题,请帮忙给思路。 请教为什么插入的记录数量会减少? 如何把PHP的结构写出来
$com->GenerateSigningKeys(&$privkey, &$pubkey); asp中使用的vbs和vb是一家的,数据传递的方式也相似
而php就完全与他们不同了如果仍然不行,请考虑修改com应用。通过属性传递数据
$com->GenerateSigningKeys('$privkey','$pubkey');
还是取不到
那么表示pubkey的数据结构是符合vbs的。用
$privkey = ' ';
$pubkey = ' ';
$com->GenerateSigningKeys(&$privkey,&$pubkey);
这样的格式调用1、检查$pubkey是否发生了变化
2、使用strlen函数检查$pubkey的长度
3、当确认了上面两项时,用
for($i=0; $i<strlen($pubkey); $i++)
printf(" %02x", $pubkey[$i]);贴出输出的结果,同时贴出asp中输出的结果
$privkey = ' ';
$pubkey = ' ';$com = new COM("wmrmobjs.WMRMKeys");
$com->GenerateSigningKeys(&$privkey,&$pubkey);
$seed = $com->GenerateSeed();
echo "<br>";
echo "Seed=".$seed;
echo "<hr>";
$pubkey = ' ';
for($i=0; $i<strlen($pubkey); $i++) {
printf(" %02x", $pubkey[$i]);
}
?>
得到结果:
Seed=KOaAfvi6OvlivCU40vcxvwRML60IK2GutG8X8A1i
--------------------------------------------------------------------------------
00 00 00 00 00 00 00 00 00 00 00 00 00
dim keysobjs
dim privkey
dim pubkey
dim seedSet keysobj= CreateObject("wmrmobjs.WMRMKeys")
keysobj.GenerateSigningKeys privkey, pubkey
seed = keysobj.GenerateSeed()
Response.Write privkey
Response.Write "<br>"
Response.Write pubkey
Response.Write "<br>"
Response.Write seed
%>
得到结果:
6wpyb1n0dzeYkJYZF8Z16yayihk=
Jx!s2W0EvYjbQmEPmhG5cgzyXGIIHMuboqqwk8Myxq5ngu69TTaYAw==
syLKWKUJ1ngEl9Y2gS6QS6yo7FW4eT7y6szKtB1W
<?
$privkey = ' ';
$pubkey = ' ';echo "before strlen:".strlen($pubkey)."<br>";
$com = new COM("wmrmobjs.WMRMKeys");
$com->GenerateSigningKeys(&$privkey,&$pubkey);
$seed = $com->GenerateSeed();
echo "<br>";
echo "Seed=".$seed;
echo "<hr>";
echo "after strlen:".strlen($pubkey)."<br>";
for($i=0; $i<strlen($pubkey); $i++) {
printf(" %02x", $pubkey[$i]);
}
?>
得到结果:before strlen:13Seed=X9MsVvzK7TzDkSxY7pfxFPefapYDlt9EtMYoiFB6
--------------------------------------------------------------------------------
after strlen:13
00 00 00 00 00 00 00 00 00 00 00 00 00