如何在一个url中传递php变量,存在于php函数中

时间:2017-04-25 10:36:43

标签: php curl

我有一个while循环,它从mysql表中收集数据,将它们插入到php变量中。这些php变量作为参数传递给php函数中的url。显然,url不会选择php变量的值。需要帮助。代码看起来像这样。

<?php
include('adodb/adodb.inc.php');
$link=mysql_connect("160.60.20.100","vcpm","abcd");
mysql_select_db("vcpm");

$GMT='2017-04-23 00:59';
$MinusOne='2017-04-23 00:00';

$query="SELECT fraud_id,stat_id from Hasoffers where fraud_id IS NOT NULL AND stat_datetime between '".$MinusOne."' AND '".$GMT."';";
$pl=mysql_query($query);
$count=mysql_num_rows($pl);

while($row=mysql_fetch_array($pl))
{
    $conversion_id=$row['stat_id'];

    $fraud_category=$row['fraud_id'];

    echo ip($conversion_id,$fraud_category).PHP_EOL;
}

function ip($conversion_id,$fraud_category)
{
    $conversion_id= $argv[1];
    $fraud_category= $argv[2];

    $url="https://api.hasoffers.com/Apiv3/json?NetworkId=mxpresso&Target=Conversion&Method=updateMeta&NetworkToken=NETY5hP42BJX8KJlTmTQfsjTo1Rq1m&id=".$conversion_id."&data[note]=".$fraud_category;
        echo $url;

        //  Initiate curl
    $ch = curl_init();
    // Disable SSL verification
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
    //Will return the response, if false it print the response
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
    // Set the url
    curl_setopt($ch, CURLOPT_URL,$url);
    // Execute
    $result=curl_exec($ch);
    // Closing
    curl_close($ch);
}

?>

4 个答案:

答案 0 :(得分:0)

怎么样?
curl_setopt($ch, CURLOPT_POSTFIELDS,
        "NetworkId=mxpresso&Target=Conversion&.........");

有帮助吗?

答案 1 :(得分:0)

这样:

$conversion_id= $argv[1];
$fraud_category= $argv[2];

可能是你的问题。 当您希望能够从命令行see doc

调用页面时,使用$argv数组

你实际上覆盖了从MySql传递给函数的参数,这就是问题所在。

评论两行并尝试回显网址

答案 2 :(得分:0)

假设您实现了正确的url / url变量名称等,请删除以下内容:

$conversion_id= $argv[1];
$fraud_category= $argv[2];

$ argv [1] / $ argv [2]覆盖从提供的参数中获得的值。

答案 3 :(得分:0)

ip函数中,您使用$ argv 1和$ argv [2]重载$conversion_id$fraud _category。 从命令行将argumnents传递给php脚本时使用$ argv

PHP argv manual

请参阅此文档以了解$ argv用法