相关疑难解决方法(0)

PHP file_get_contents()和设置请求标头

使用PHP,是否可以发送HTTP标头file_get_contents()

我知道您可以从您的php.ini文件中发送用户代理.但是,你能不能也发送其他信息,如HTTP_ACCEPT,HTTP_ACCEPT_LANGUAGEHTTP_CONNECTIONfile_get_contents()

或者是否有其他功能可以实现这一目标?

php http-headers

116
推荐指数
3
解决办法
17万
查看次数

使用Mailchimp的API v3将订阅者添加到列表中

我正在尝试将用户添加到我在Mailchimp中创建的列表中,但我无法在任何地方找到任何代码示例.我已经尝试弄清楚如何使用API​​,但我非常关注"看一个例子并学习"这类人.

我已经尝试使用API​​的第2版但是似乎没有任何工作,尽管在网上的例子工作,Mailchimp在他们的网站上说下面关于他们的API的早期版本:

不推荐使用版本2.0及更早版本.只有最小的支持错误修复,安全补丁 - 将适用于这些版本.

更新1:我根据TooMuchPete 关于管理订户的链接的答案做了一些进一步的研究,并修改了我在这里找到的一些代码,但它不起作用,因为函数http_build_query()不处理嵌套数组.我不知道如何处理添加订阅者的'merge_fields'部分.我目前的代码如下:

$postdata = http_build_query(
                    array(
                        'apikey'        => $apikey,
                        'email_address' => $email,
                        'status'        => 'subscribed',
                        'merge_fields'  => array(
                            'FNAME' => $name
                        )
                    )
                );

                $opts = array('http' =>
                    array(
                        'method'  => 'POST',
                        'header'  => 'Content-type: application/x-www-form-urlencoded',
                        'content' => $postdata
                    )
                );

                $context  = stream_context_create($opts);

                $result = file_get_contents('https://us2.api.mailchimp.com/3.0/lists/<list_id>/members/', false, $context);

                var_dump($result);
                die('Mailchimp executed');
Run Code Online (Sandbox Code Playgroud)

更新2:我现在使用卷曲,我已经设法得到一些几乎工作的东西.数据发送到Mailchimp但我收到错误"您的请求不包含API密钥".我猜这里需要进行身份验证.我已经尝试将它添加到http标头,但尚未奏效.请参阅下面的代码:

$apikey = '<api_key>';
                $auth = base64_encode( 'user:'.$apikey );

                $data = …
Run Code Online (Sandbox Code Playgroud)

php json curl mailchimp mailchimp-api-v3.0

57
推荐指数
3
解决办法
9万
查看次数

需要带有file_get_contents(PHP)的HTTP 500的响应体

使用file_get_contents作为自定义SOAP实现的一部分来应用SOAP调用(我们尝试的所有库都不会正确地使用SOAP 1.2进行基于SSL +证书的身份验证).然而,困难且几乎没有文档记录的API通常返回500.响应正文中有错误详细信息,但file_get_contents似乎不允许访问它.fopen似乎也有同样的问题.

做什么?

由于大量使用流上下文来使身份验证正常工作,因此不希望转到cURL.

php file-get-contents http-error

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

是否可以使用Linux命令从HTTP服务器只读取前N个字节?

这是个问题.

给定网址http://www.example.com,我们可以读取页面外的前N个字节吗?

  • 使用wget,我们可以下载整个页面.
  • 使用curl,有-r,0-499指定前500个字节.似乎解决了这个问题.

    您还应该知道许多HTTP/1.1服务器没有启用此功能,因此当您尝试获取范围时,您将获得整个文档.

  • 在python中使用urlib.类似的问题在这里,但根据康斯坦丁的评论,这是真的吗?

    上次我尝试这种技术时失败了,因为实际上不可能只从HTTP服务器读取指定数量的数据,即你隐式读取所有HTTP响应,然后只读出它的前N个字节.所以最后你最终下载了整个1Gb恶意响应.

所以问题是我们如何在实践中从HTTP服务器读取前N个字节?

问候和谢谢

linux url command http

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

将代理与file_get_contents一起使用

我从网站上获取我的应用程序数据,比如说x.com.我使用php函数file_get_contents()来获取数据.可以肯定的是,我的服务器的IP地址将显示在x.com的日志中.有没有办法隐藏我的服务器的IP而不使用代理?

如果我有代理,如何将其与file_get_contents()一起使用

我需要在HTTP POST和HTTP GET方法中发送请求

php proxy file-get-contents

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

如何在没有cURL的情况下使用PHP HTTP发布XML文件?

我有一个从Table In MySql创建的XML,我需要创建一个HTTP Post来将XML插入到Web服务中.Web Service只接受SOAP,HTTP POST和HTTP GET方法.我尝试以不同的方式发出HTTP POST请求而根本没有运气.我之前从未使用过SOAP.如何进行HTTP POST或SOAP请求?

post_xml.xml:

<?xml version="1.0" encoding="utf-8"?>
<?ADF version="1.0"?>
<adf>
<prospect><id sequence="1" source="xxxs">37</id>
<requestdate>2013-07-10 06:10:42</requestdate>
<vehicle interest="buy" status="new">
<year>2013</year>
<make>12</make>
<model>21</model>
<trim>Sport</trim>
</vehicle>
<customer>
<contact>
<name part="first">Jay</name>
<name part="last">11z</name>
<email>test@gmail.com</email>
<phone time="morning" type="voice" preferredcontact="1">99999999</phone>
<address>
<street line="1">1130 E Test</street>
<city>sa</city>
<regioncode>Z</regioncode>
<postalcode>79924</postalcode>
<country>USA</country>
</address>
</contact>
</prospect>
</adf>
Run Code Online (Sandbox Code Playgroud)

client1.php(HTTP POST代码)

$xml = file_get_contents('post_xml.xml');
$url = 'http://stg.sa.com/post.asmx/';

$post_data = array ("XML" => $xml);
$stream_options = array(
    $url => array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded' …
Run Code Online (Sandbox Code Playgroud)

php xml http-post

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

reCaptcha不起作用; 它没有回归成功

我的表单需要一个验证码,我在服务器端集成方面遇到了一些麻烦.

表单包含四种类型的数据:

  1. 名称
  2. 电子邮件
  3. 评论.

在确保它们都不为空之后,我想验证验证码.但是,出于某种原因,它总会返回success == false.

有人可以帮我发现我的代码有什么问题吗?

function validate($data)
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}

$nameMsgErr = $emailErr = $msgSuccess = $error = "";

if(!empty($_POST['name_msg']) && !empty($_POST['email']) && !empty($_POST['subject']) && !empty($_POST['message'])) {

    $url = 'https://www.google.com/recaptcha/api/siteverify';
    $private_key = '------Private Key--------';

    $response = file_get_contents($url . "?secret=" . $private_key . "&response=" . $_HOST['g-recaptcha-response'] . "&remoteip=" . $_SERVER['REMOTE_ADDR']);

    $data = json_decode($response);

    if(isset($data->success) AND $data->success == true) {

        $name = validate($_POST['name_msg']);
        $email = validate($_POST['email']); …
Run Code Online (Sandbox Code Playgroud)

php captcha recaptcha

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

仅使用PHP发送类似AJAX的发布请求

我目前正在研究PHP中的一些自动化脚本(没有HTML!).我有两个PHP文件.一个是执行脚本,另一个是接收$ _POST数据并返回信息.问题是如何从一个PHP脚本发送POST到另一个PHP脚本,获取返回变量并继续处理第一个没有HTML表单且没有重定向的脚本.我需要在不同的条件下从第一个PHP文件到另一个PHP文件发出几次请求,并根据请求返回不同类型的数据.我有这样的事情:

<?php // action.php  (first PHP script)
/* 
    doing some stuff
*/
$data = sendPost('get_info');// send POST to getinfo.php with attribute ['get_info'] and return data from another file
$mysqli->query("INSERT INTO domains (id, name, address, email)
        VALUES('".$data['id']."', '".$data['name']."', '".$data['address']."', '".$data['email']."')") or die(mysqli_error($mysqli));
/* 
    continue doing some stuff
*/
$data2 = sendPost('what_is_the_time');// send POST to getinfo.php with attribute ['what_is_the_time'] and return time data from another file

sendPost('get_info' or 'what_is_the_time'){
//do post with desired attribute
return $data; }
?>
Run Code Online (Sandbox Code Playgroud)

我想我需要一些将使用属性调用的函数,发送post请求并根据请求返回数据.第二个PHP文件:

<?php // …
Run Code Online (Sandbox Code Playgroud)

php algorithm function http-post

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