php在文本字符串中

时间:2017-07-27 12:08:51

标签: php mysql curl

目标:将数据库的整个列转换为一个值,以便在文本字符串中发送它。

方法API:

define('SLACK_WEBHOOK', 'https://hooks.slack.com/services/xxx/xxx/xxx');
        $message = array('payload' => json_encode(array('text' => " $row[0] $row[1] $row[2] ")));
        $c = curl_init(SLACK_WEBHOOK);
        curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($c, CURLOPT_POST, true);
        curl_setopt($c, CURLOPT_POSTFIELDS, $message);
        curl_exec($c);
        curl_close($c); 

DB structure

以数组存储:

        $result = mysql_query("SELECT Name FROM items");
        $row = mysql_fetch_array($result);

        $row[0] $row[1] $row[2] 

只返回DB列中的一个项目。

2 个答案:

答案 0 :(得分:1)

如果您尝试从字符串中执行任意一段PHP代码,那么eval就是您要寻找的。

但是我只能说,不要这样做,特别是如果您正在使用字符串的用户输入。这样做将允许用户针对该站点运行任何PHP并为您打开各种漏洞。您最好提供一些您控制的API,以便以这种方式进行访问。

编辑: 我在eval页面的第一条评论中找到了这句话,它总结了一切。

  

如果eval()是答案,你几乎肯定会问错误的问题。 - Rasmus Lerdorf,PHP的BDFL

答案 1 :(得分:0)

首先,您必须使用php函数json_decode将json字符串转换为数组。然后,您需要将数组修改为所需的格式,然后将其发送到您的api(检查api可以处理您的数据的格式)以进行进一步处理。