我有我的数组数据,如下所示:
Array (
[0] => Array ( [name] => Bank BRI [amount] => 0 )
[1] => Array ( [name] => Bank BRI [amount] => 0 )
[2] => Array ( [name] => Bank BCA [amount] => 1412341234 )
[3] => Array ( [name] => Bank CIMB Niaga [amount] => 532532552 )
[4] => Array ( [name] => Bank BRI [amount] => 34534534 )
[5] => Array ( [name] => Bank CIMB Niaga [amount] => 453425243 )
[6] => Array …Run Code Online (Sandbox Code Playgroud) 为PHP创建可加载的DLL模块扩展的第一步是什么,以便在Windows上为我自己的库创建本机支持?
是否需要在Windows上重新编译PHP?需要什么工具?我不想使用exec和命令行.
我的netbeans使用xdebug不能使用断点,我的配置看起来是正确的,所以我第一次配置我第一次停止调试从那时起从未工作,有人有这个问题吗?我的netbeans的版本是6.8,php的版本是2.5.2.
我的php.ini:
zend_extension_ts = d:\wamp\bin\php\php5.2.5\ext\php_xdebug-2.0.2-5.2.5.dll
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
xdebug.profiler_enable=1
Run Code Online (Sandbox Code Playgroud) 当我发送下面的请求时,我得到'错误的版本'例外.
<OTA_HotelGetMsgRQ xmlns="http://www.opentravel.org/OTA/2003/05"
TimeStamp="2001-12-17T09:30:47.0Z" Version="4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Messages>
<Message HotelCode="123" HotelName="Test Hotel" ChainCode="321"
ReasonForRequest="Reservation Retrieval" RequestCode="Optional"
ChainName="Test Chain" MessageType="All" StartSeqNmbr="1"
EndSeqNmbr="10" />
</Messages>
</OTA_HotelGetMsgRQ>
Run Code Online (Sandbox Code Playgroud)
上面的请求被转换为zend代码
$client = new zend_soap_client(null,
array(
'location' => 'http://url...',
'Uri' =>"http://www.opentravel.org/OTA/2003/05"
)
);
$request = array(
array('Messages'=>
array ('Message' =>
array (
'HotelCode' => '123',
'HotelName' => 'Test Hotel',
'ChainCode' => '321',
'ReasonForRequest' => 'Reservation Retrieval',
'RequestCode' => 'Optional',
'ChainName' => 'Test Chain',
'MessageType' => 'All',
'StartSeqNmbr' => '1',
'EndSeqNmbr' => '10'
)
)
)
);
$result …Run Code Online (Sandbox Code Playgroud) 我试图创建一些PHP扩展.
对于第一个我编php 5.3.6带--enable-debug --enable-maintainer-zts.然后我停止了我的扩展并使用标准程序
phpize
./configure --with-EXTNAME
make
Run Code Online (Sandbox Code Playgroud)
然后复制extname.so到我的php扩展目录,并进行更改php.ini
当我尝试从cli使用php时出现错误
Unable to initialize module
Module compiled with build ID=API20090626,NTS
PHP compiled with build ID=API20090626,TS,debug
Run Code Online (Sandbox Code Playgroud)
当我尝试
./configure --enable-debug --enable-maintainer-zts
Run Code Online (Sandbox Code Playgroud)
对于扩展,我收到警告,配置脚本无法识别这些选项.
那么,我如何编译我的扩展以使用PHP编译我上面描述的选项编译而无需重新编译php本身?
在花了几个沮丧的时间后,我要求你的帮助.
我试图从SOAP响应中获取特定节点的内容.
回应是
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="<a href="http://www.w3.org/2003/05/soap-envelope">http://www.w3.org/2003/05/soap-envelope</a>"<xmlns:ns1="<a href="http://soap.xxxxxx.co.uk/">http://soap.xxxxxx.co.uk/</a>">
<env:Body>
<ns1:PlaceOrderResponse>
<xxxxxOrderNumber></xxxxxOrderNumber>
<ErrorArray>
<Error>
<ErrorCode>24</ErrorCode>
<ErrorText>The+client+order+number+3002254+is+already+in+use</ErrorText>
</Error>
<Error>
<ErrorCode>1</ErrorCode>
<ErrorText>Aborting</ErrorText>
</Error>
</ErrorArray>
</ns1:PlaceOrderResponse>
</env:Body>
</env:Envelope>
Run Code Online (Sandbox Code Playgroud)
我试图找到<ErrorArray>的节点和子节点.由于包含名称空间的XML
$XmlArray = new SimpleXMLElement($XmlStr);
foreach ($XmlArray->env:Envelope->env:Body->ns1:PlaceOrderResponse->ErrorArray->Error as $Error)
{
echo $Error->ErrorCode."<br />";
}
Run Code Online (Sandbox Code Playgroud)
不起作用.我读了很多文章,比如
在这个网站上有大约20个问题,遗憾的是这些问题没有帮助.
甚至写作,
$XmlArray = new SimpleXMLElement($XmlStr);
echo "<br /><br /><pre>\n";
print_r($XmlArray);
echo "<pre><br /><br />\n";
Run Code Online (Sandbox Code Playgroud)
给
SimpleXMLElement Object
(
)
Run Code Online (Sandbox Code Playgroud)
这让我想知道soap响应($ XmlStr)实际上是否是SimpleXMLElement的有效输入.
看来就行了
$XmlArray = new SimpleXMLElement($XmlStr);
Run Code Online (Sandbox Code Playgroud)
没有做我期望的事情.
有关如何从上面的XML获取节点的任何帮助都将非常受欢迎.
显然,让它发挥作用(有一个工作的例子)是我在短期内所需要的,但如果有人能帮助我理解我所做错的话,从长远来看会更好.
干杯.斯图
我已经看过所有上传进度条插件,小部件等等 - 它们都很糟糕.他们要么太笨重,有太多无用的代码,要么无法工作.
我想知道的是我可以在哪里阅读如何显示简单的上传进度指示器.大多数浏览器下面都有一个状态进度条,但在处理客户端时使用它并不是很专业.
浏览器如何做到这一点?我想知道浏览器如何工作的内部用于指示上传内容的状态,以便我可以使用PHP和jquery创建一些内容.
谢谢.
首先,我不是程序员.我是一名网络管理员,他被要求为启用了SSH2的网页设计师编译PHP.
我一直在按照这个步骤编译PHP for Windows:https: //wiki.php.net/internals/windows/stepbystepbuild
要编译,我正在使用:Microsoft Visual C++ Studio 2008 Express Microsoft Windows SDK 6.1
我已经下载了SSH2所需的所有必需的库和库.我已经提取并将它们放在'deps'文件夹中.我还下载了SSH2扩展代码并将其放在我在'x86'目录中创建的'pecl'文件夹中.
看起来编译器没有找到我添加的库.任何帮助将不胜感激!谢谢!
以下是尝试使用以下命令进行编译时出现的一些错误:
C:\php-sdk\php53dev\vc9\x86\php5.3-201107071830>configure --enable-cli --with-ss
h2
Run Code Online (Sandbox Code Playgroud)
Checking for library libjpeg_a.lib;libjpeg.lib ... <not found>
WARNING: gd not enabled; libraries and headers not found
Checking for zlib.h ... <not found>
Checking for zlib.h ... <not found>
WARNING: zip not enabled; libraries and headers not found
Checking for library libiconv_a.lib ... <not found>
Checking for library libiconv.lib ... <not found>
Checking for library …Run Code Online (Sandbox Code Playgroud) 每次我想重写提交以仅保留差异的一部分时,我都会经历这个(从我的脑海中浮现出来,有些东西可能会消失):
git rebase -i COMMIT~1
Run Code Online (Sandbox Code Playgroud)
然后选择e修改。
git reset HEAD~1
git add -p # select the part I want
git checkout HEAD -- :/ # discard changes not selected
git stash
git reset COMMIT
git checkout HEAD~1 -- :/
git commit -u --amend
git stash pop
git commit --amend
git rebase --continue
Run Code Online (Sandbox Code Playgroud)
显然,这是一个糟糕的工作流程。问题是重置允许我选择我想要的更改,但是通过将 HEAD 向后移动,我将无法修改相关提交。
我尝试git checkout HEAD~1 -- :/在提交时执行一次我想要修改的操作并选择反向差异,但它只是变得令人困惑。
有什么更好的选择?