通过or_search_query过滤器搜索freelancer.com API

时间:2017-03-02 20:06:36

标签: php freelancer.com-api

我需要从freelancer.com API获取项目,其中包含列表中的任何单词。似乎project search method中的<?php $url = 'https://www.freelancer.com/api/projects/0.1/projects/active/'; $params = array( 'or_search_query' => 'scraper scraping scrap scrapy', 'languages' => array('en'), ); $params = http_build_query($params); $params = preg_replace('/%5B[0-9]+%5D/', '%5B%5D', $params); // param[1] -> param[] $url = $url . '?' . $params; var_dump(urldecode($url)); // https://www.freelancer.com/api/projects/0.1/projects/active/?or_search_query=scraper scraping scrap scrapy&languages[]=en $json = json_decode(file_get_contents($url), true); if ($json) { foreach ($json['result']['projects'] as $project) { echo '<a href="https://www.freelancer.com/projects/' . $project['seo_url'] . '">' . $project['title'] . '</a><br />'; } } 过滤器无效。

Array.prototype.map()

此代码为我提供了与“刮擦”无关的工作。我做错了什么?

1 个答案:

答案 0 :(得分:0)

假设您正确使用API​​,何时进行curl请求?我在代码中没有看到它。您正在$ url变量中形成URL,然后解码该URL,然后使用json_decode解码该信息。从那里回来的是什么?你能提供吗?

如果你实际上没有提出任何卷曲请求,我建议你使用库Guzzle:http://docs.guzzlephp.org/en/latest/这将使你的生活更容易调试。我希望您使用的是调试器而不是var_dumps,因为这会让您更清楚。