gpt4 book ai didi

php - 为什么 Pubmed 从 PHP 脚本生成的结果与手动搜索生成的结果不同?

转载 作者:行者123 更新时间:2023-12-04 06:30:11 25 4
gpt4 key购买 nike

我编写了一个 PHP 脚本,它根据用户输入自动搜索 NCBI Pubmed 数据库。这是一个相当大的脚本,我不会费心把它全部放在这里。但我无法弄清楚的一个问题是,为什么当我使用 esearch(eutils 之一)搜索 Pubmed 时,如果使用 PHP 脚本完成,我会得到与手动完成时不同的结果?

让我给你举个例子。您可以手动将其输入浏览器窗口:http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=cancer+AND+Nature[jour]&retmode=xml

您将看到它生成一个 XML 文件,其中 Count 字段(命中数)为 5986。

但是如果我使用以下 PHP 脚本:

<?php
$test = simplexml_load_file('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=cancer+AND+Nature[jour]&retmode=xml');
echo $test->Count;
?>

它返回值 0。每当修改搜索词以包含附加字段或非标准字段包含多个搜索词时,似乎都会发生这种情况。在这种情况下,它是“癌症”带来的搜索次数,但仅限于第二个领域“自然”杂志上的出版物。如果我修改搜索词以查找癌症和 DNA ('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=cancer+AND+DNA&retmode=xml' ),同一字段中有两个不同的搜索词,它在脚本中工作正常。

如果我在单个非标准字段中搜索:('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=Nature[jour]&retmode=xml')它可以工作很好 - 但是如果我然后修改它以在期刊字段中包含两个术语('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=Science[jour]+OR +Nature[jour]&retmode=xml') 手动和 PHP 生成的返回之间的差异。

有谁知道为什么会发生这种情况?

感谢您提供的任何帮助。

最佳答案

这有效:

<?php

$result = file_get_contents('http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=cancer+AND+Nature[jour]&retmode=xml');
$xml = simplexml_load_string($result);
echo $xml->Count; // = 5986

?>

关于php - 为什么 Pubmed 从 PHP 脚本生成的结果与手动搜索生成的结果不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5521598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com