【问题标题】:Searching freelancer.com API by or_search_query filter通过 or_search_query 过滤器搜索 freelancer.com API
【发布时间】:2018-06-13 01:02:36
【问题描述】:

我需要从 freelancer.com API 获取项目,其中包含列表中的任何单词。 project search method 中的or_search_query 过滤器似乎不起作用。

<?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 />';
    }
}

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

【问题讨论】:

    标签: php freelancer.com-api


    【解决方案1】:

    假设您正确使用 API,您何时发出 curl 请求?我没有在代码中看到它。您在 $url 变量中形成 URL,然后解码 url,然后使用 json_decode 解码该信息。从那里返回什么?可以提供吗?

    如果您实际上没有发出任何 curl 请求,我建议您使用库 Guzzle:http://docs.guzzlephp.org/en/latest/ 它会让您在调试时更轻松。我希望您使用的是调试器而不是 var_dumps,因为这会让您更清楚。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-23
      • 1970-01-01
      • 2012-02-23
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多