我正在使用以下电子邮件搜索API包装器...
require_once '/home/mysite/public_html/path/to/hunterio/vendor/autoload.php';
use Hiraya\Hunter;
$hunter = new Hunter('MY_API_KEY');
他们的关键方法是......
$hunter->findEmailByCompany('microsoft.com', 'Bill Gates');
但我不明白如何访问和输出结果 - 特别是“电子邮件”字段。
我知道之前已经提出了类似的问题,我已经检查了很多答案,但我找不到解决方案。 $hunter
是一个对象,对吗?他们对我来说很新鲜。
以下是我尝试过的一些事情......
1
echo $hunter->findEmailByCompany('microsoft.com', 'Bill Gates');
...输出
" {"data"}: { "first_name": "Bill", "last_name": "Gates", "email": "bill.gates@microsoft.com", "score": 91, "domain": "microsoft ....
2
var_dump($hunter);
...输出
object(Hiraya\Hunter)#25263 5) {["apiKey":protected] => string(40) ...
3
$myobject = $hunter->findEmailByCompany('microsoft.com', 'Bill Gates');
print_r($myobject["data"]);
...输出
Warning: Illegal string offset 'data' in...
上面的数字1.最接近,因为它显示属性“电子邮件”可用,似乎在“数据”内。我需要访问“电子邮件”。
修改:
我的误解......库返回JSON。 因此,正如答案所指出的,我使用json_decode访问一个元素。
答案 0 :(得分:0)
问题是,findEmailByCompany()
返回的数据类型是什么?
如果它是一个JSON编码为#1的对象(不清楚,__toString()
可以以任何方式实现),那么您的电子邮件就在:
$hunter->findEmailByCompany('microsoft.com', 'Bill Gates')->email
或
$hunter->findEmailByCompany('microsoft.com', 'Bill Gates')->data->email
或
$hunter->findEmailByCompany('microsoft.com', 'Bill Gates')->data['email']
但是,findEmailByCompany()
返回的对象也可能有一个非公开的电子邮件字段。然后你会有一些getter方法,例如get('email')
。
编辑:该方法也可能只返回一个JSON字符串。在这种情况下,它的含义如下:
json_decode($hunter->findEmailByCompany('microsoft.com', 'Bill Gates'))->data->email
答案 1 :(得分:0)
当findEmailByCompany()
返回JSON字符串(如source code中所述)时,您需要使用:
$json = $hunter->findEmailByCompany('microsoft.com', 'Bill Gates');
$result = json_decode($json);
echo $result->data->email;