我编写了一个类/函数,通过PHP4/cURL通过https发送xml,只是想知道这是否是正确的方法,或者是否有更好的方法.
请注意,PHP5目前不是一个选项.
/**
* Send XML via http(s) post
*
* curl --header "Content-Type: text/xml" --data "<?xml version="1.0"?>...." http://www.foo.com/
*
*/
function sendXmlOverPost($url, $xml) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// For xml, change the content-type.
curl_setopt ($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml"));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // ask for results to be returned
if(CurlHelper::checkHttpsURL($url)) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}
// Send to remote and return data to caller.
$result = curl_exec($ch);
curl_close($ch); …Run Code Online (Sandbox Code Playgroud) 为了让生活变得困难,我正在努力的客户使用的是一个在PHP4.0上运行的非常大的旧系统,他们不想添加任何额外的库.
我正在尝试通过PHP发送一封包含附件和附带的text/html内容的电子邮件,但我无法通过一封电子邮件发送这两封邮件.
这会发送附件:
$headers = "Content-Type: text/csv;\r\n name=\"result.csv\"\r\n Content-Transfer-Encoding: base64\r\n Content-Disposition: attachment\r\n boundary=\"PHP-mixed-".$random_hash."\"";
$output = $attachment;
mail($emailTo, $emailSubject, $output, $headers);
Run Code Online (Sandbox Code Playgroud)
这发送text/html:
$headers = "Content-Type: text/html; charset='iso-8859-1'\r\n";
$output = $emailBody; // $emailBody contains the HTML code.
Run Code Online (Sandbox Code Playgroud)
这会发送包含text/html的附件以及附件内容:
$headers = "Content-Type: text/html; charset='iso-8859-1'\r\n".$emailBody."\r\n";
$headers = "Content-Type: text/csv;\r\n name=\"result.csv\"\r\n Content-Transfer-Encoding: base64\r\n Content-Disposition: attachment\r\n boundary=\"PHP-mixed-".$random_hash."\"";
$output = $attachment;
Run Code Online (Sandbox Code Playgroud)
我需要知道的是如何在电子邮件正文中发送带有text/html的电子邮件,并为其添加附件.我确定我在这里错过了一些非常简单的东西!
提前致谢.
我正在尝试使用nuSOAP访问WebService(因为我在这里绑定了PHP4),它在消息中使用了多个命名空间.那可能吗?
示例请求消息如下所示:
<soapenv:Envelope ...
xmlns:ns1="http://domain.tld/namespace1"
xmlns:ns2="http://domain.tld/namespace2">
<soapenv:Header/>
<soapenv:Body>
<ns1:myOperation>
<ns2:Person>
<ns2:Firstname>..</ns2:Firstname>
..
</ns2:Person>
<ns1:Attribute>..</ns1:Attribute>
</ns1:myOperation>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
我试着跟随:
$client = new nusoap_client("my.wsdl", true);
$params = array(
'Person' => array(
'FirstName' => 'Thomas',
..
),
'Attribute' => 'foo'
);
$result = $client->call('myOperation', $params, '', 'soapAction');
Run Code Online (Sandbox Code Playgroud)
希望nuSOAP尝试将这些名称与正确的名称空间和节点相匹配.然后我尝试使用soapval()来生成元素及其命名空间 - 但是如果我调用一个操作,nuSOAP会创建以下请求:
<SOAP-ENV:Envelope ...>
<SOAP-ENV:Body>
<queryCCApplicationDataRequest xmlns="http://domain.tld/namespace1"/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Run Code Online (Sandbox Code Playgroud)
因此在"匹配"阶段出现问题.
我试图基本上每秒运行一次循环25秒.
for($i = 0; $i <= 25; $i += 1){
echo $i;
sleep(1)
}
Run Code Online (Sandbox Code Playgroud)
事情是它完全没有输出,所以循环继续25次.有没有办法这样做,所以它会在每次睡眠前输出?而不是等到完整循环完成?
谢谢!
我正在生成一个充满数据的HTML表.他们需要它是一个可编辑的电子表格,尽管他们可以保存和编辑.
我目前完全按照自己的意愿,但作为一个HTML表,无论如何我可以将其转换为他们可以下载的excel电子表格吗?
谢谢!!
是否有正式的日期支持PHP4何时结束?
我一直在各种网站和博客上阅读这个日期,但在PHP网站上找不到任何内容.
我忽略了什么吗?
免责声明:是的,我被迫支持PHP 4.3.0.我知道它已经死了.不,我不能升级它,因为我正在处理多个服务器,其中一些我没有su访问权限.
好吧,因为我不能使用,self::因为它是PHP5特定的,我应该如何在PHP4类中实现静态?到目前为止,我的研究似乎我至少可以使用static关键字除了只在函数上下文中,我已经看到另一种方法使用$ _GLOBALS,但我不认为我将使用它.
就这样我们在同一页面上我需要访问4中的这些PHP5静态:
public static $_monthTable = array(
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
public static $_yearTable = array(
1970 => 0, 1960 => -315619200);
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经提出了我自己的函数,基本上设置一个静态变量,如果找不到,我将所有静态属性硬编码到其中.但是,我不完全确定如何在同一类中的anther方法中引用这些静态,假设它没有被实例化并且没有触发构造函数,这意味着我无法使用$this.
class DateClass {
function statics( $name = null ) {
static $statics = array();
if ( count( $statics ) == 0 ) {
$statics['months'] = array(
'Jan', 'Feb'
);
}
if ( $name != null && array_key_exists($name, $statics ) ) …Run Code Online (Sandbox Code Playgroud) 我刚刚意识到谷歌教授无法提供我可以找到的特定页面,当static关键字添加到PHP 4时.虽然遵循php 4的更改日志,但我可以看到它从版本4.0.6(或之前)开始可用但它为什么抛出:
解析错误:语法错误,意外T_STATIC,期待{FILE_PATH + LINE#}中的T_OLD_FUNCTION或T_FUNCTION或T_VAR或'}'
一个简单的代码如下:
class myClass
{
static $_debug = true;
}
Run Code Online (Sandbox Code Playgroud)
或者这个类变量的赋值是在早期版本的PHP中引入的?
我想合并两个包含文件列表及其括号中的修订的数组。
例如:
拳阵:
0 => A[1], 1 => B[2], 2 => C[2], 3 => D[2]
Run Code Online (Sandbox Code Playgroud)
第二个,
0 => B[3], 1 => C[4], 2 => E[4], 3 => F[2], 4 => G[2]
Run Code Online (Sandbox Code Playgroud)
就像我说的那样,我可以合并两个数组,但会用第二个数组中存在的数据覆盖第一个数组。
我使用这个正则表达式只获取文件名(删除修订号)。我不知道我在这一点上是否正确):
/\[[^\)]+\]/
Run Code Online (Sandbox Code Playgroud)
我正在寻找的结果是这样的,
0 => A[1], 1 => B[3], 2 => C[4], 3 => D[2], 4 => E[4], 5 => F[2], 6 => G[2]
Run Code Online (Sandbox Code Playgroud)
另外,我快要忘记了,整个过程都在 PHP 中。
我需要与mysql5一起建立PHP4环境,当我尝试连接到mysql时我遇到了这个问题.
谢谢你的任何痕迹.