标签: php4

PHP4:通过cURL通过HTTPS/POST发送XML?

我编写了一个类/函数,通过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)

php xml https curl php4

7
推荐指数
1
解决办法
3万
查看次数

使用mail()在PHP4中的电子邮件中发送附件AND text/html

为了让生活变得困难,我正在努力的客户使用的是一个在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的电子邮件,并为其添加附件.我确定我在这里错过了一些非常简单的东西!

提前致谢.

php php4

7
推荐指数
1
解决办法
9630
查看次数

如何将nuSOAP用于具有多个名称空间的消息

我正在尝试使用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)

因此在"匹配"阶段出现问题.

php soap php4 nusoap

6
推荐指数
1
解决办法
2万
查看次数

php输出与sleep()

我试图基本上每秒运行一次循环25秒.

for($i = 0; $i <= 25; $i += 1){ 
    echo $i;
    sleep(1)
}
Run Code Online (Sandbox Code Playgroud)

事情是它完全没有输出,所以循环继续25次.有没有办法这样做,所以它会在每次睡眠前输出?而不是等到完整循环完成?

谢谢!

php sleep php4

6
推荐指数
3
解决办法
8172
查看次数

PHP:将HTML表格变成电子表格?

我正在生成一个充满数据的HTML表.他们需要它是一个可编辑的电子表格,尽管他们可以保存和编辑.

我目前完全按照自己的意愿,但作为一个HTML表,无论如何我可以将其转换为他们可以下载的excel电子表格吗?

谢谢!!

php excel php4 spreadsheet

5
推荐指数
1
解决办法
2102
查看次数

官方结束对PHP4的支持?

是否有正式的日期支持PHP4何时结束?

我一直在各种网站和博客上阅读这个日期,但在PHP网站上找不到任何内容.

我忽略了什么吗?

php php4

5
推荐指数
3
解决办法
893
查看次数

在PHP> = 4.3.0中使用静态属性?

免责声明:是的,我被迫支持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)

php php4 static-members

5
推荐指数
1
解决办法
3266
查看次数

为什么PHP 4.4.9抛出'Parse错误:语法错误,意外T_STATIC'?

我刚刚意识到谷歌教授无法提供我可以找到的特定页面,当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中引入的?

php php4 syntax-error

5
推荐指数
1
解决办法
6101
查看次数

合并两个数组,用第二个数组覆盖第一个数组

我想合并两个包含文件列表及其括号中的修订的数组。

例如:

拳阵:

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 中。

php regex arrays php4

5
推荐指数
1
解决办法
3331
查看次数

客户端不支持服务器请求的身份验证协议

我需要与mysql5一起建立PHP4环境,当我尝试连接到mysql时我遇到了这个问题.

谢谢你的任何痕迹.

php mysql authentication php4 protocols

4
推荐指数
1
解决办法
2万
查看次数