Php 数组中多个标题的LoL API查询

Php 数组中多个标题的LoL API查询,php,arrays,api,Php,Arrays,Api,我有一个数组: Array ( [0] => Ahri [1] => Akali [2] => Alistar [3] => Amumu [4] => Anivia [5] => Annie [6] => Ashe [7] => Blitzcrank [8] => Brand [9] => Caitlyn [10] => Cassiopeia [11] => Cho'Gath [12] => Corki [13] =

我有一个数组:

Array ( [0] => Ahri [1] => Akali [2] => Alistar [3] => Amumu [4] => Anivia [5] =>  Annie [6] => Ashe [7] => Blitzcrank [8] => Brand [9] => Caitlyn [10] => Cassiopeia [11] => Cho'Gath [12] => Corki [13] => Dr. Mundo [14] => Evelynn [15] => Ezreal [16] => Fiddlesticks [17] => Fiora [18] => Fizz [19] => Galio [20] => Gangplank [21] => Garen [22] => Gragas [23] => Graves [24] => Hecarim [25] => Heimerdinger [26] => Irelia [27] => Janna [28] => Jarvan IV [29] => Jax [30] => Karma [31] => Karthus [32] => Kassadin [33] => Katarina [34] => Kayle [35] => Kennen [36] => Kog'Maw [37] => LeBlanc [38] => Lee Sin [39] => Leona [40] => Lulu [41] => Lux [42] => Malphite [43] => Malzahar [44] => Maokai [45] => Master Yi [46] => Miss Fortune [47] => Mordekaiser [48] => Morgana [49] => Nasus [50] => Nautilus [51] => Nidalee [52] => Nocturne [53] => Nunu [54] => Olaf [55] => Orianna [56] => Pantheon [57] => Poppy [58] => Rammus [59] => Renekton [60] => Riven [61] => Rumble [62] => Ryze [63] => Sejuani [64] => Shaco [65] => Shen [66] => Shyvana [67] => Singed [68] => Sion [69] => Sivir [70] => Skarner [71] => Sona [72] => Soraka [73] => Swain [74] => Talon [75] => Taric [76] => Teemo [77] => Tristana [78] => Trundle [79] => Tryndamere [80] => Twisted Fate [81] => Twitch [82] => Udyr [83] => Urgot [84] => Varus [85] => Vayne [86] => Veigar [87] => Viktor [88] => Vladimir [89] => Volibear [90] => Warwick [91] => Wukong [92] => Xerath [93] => Xin Zhao [94] => Yorick [95] => Ziggs [96] => Zilean [97] => Lee Sin [98] => Orianna [99] => Yorick [100] => Leona [101] => Riven [102] => Lulu [103] => Hecarim [104] => Varus [105] => Malphite [106] => Morgana [107] => Ryze [108] => Annie [109] => Cho'Gath [110] => Taric [111] => Jax [112] => Teemo [113] => Warwick [114] => Poppy [115] => Garen [116] => Anivia [117] => Blitzcrank [118] => Corki [119] => Karthus [120] => Twitch [121] => Irelia [122] => Miss Fortune [123] => Galio [124] => Swain [125] => Kennen [126] => Malzahar ) 
我需要在以下函数中使用这些值:

$input=file_get_contents("http://leagueoflegends.wikia.com/api.php?action=query&titles=$value&prop=revisions&rvprop=content&format=xml");
其中,
$value
是来自数组的值(例如,
Ahri

我怎样才能做到这一点

编辑:我通过执行以下操作获得这些值:

$file = file_get_contents('http://leagueoflegends.wikia.com/api.php?action=query&titles=List_of_champions&prop=revisions&rvprop=content&format=xml');
preg_match_all('/{{ci\|([^}]*)}}/', $file, $matches);

(其中,
$matches
是上面提到的数组。)

或者,您可以使用内置的方式,通过使用
|
字符分隔每个标题,同时检索所有值。像这样:

$values = array("Ahri","Akali","Alistar");
$input  = "";

while($pack = array_splice($values,0,49)){
    $concatValues = implode("|",$values); // Will return "Ahri|Akali|Alistar";
    $url   = "http://leagueoflegends.wikia.com/api.php?action=query&titles=$concatValues&prop=revisions&rvprop=content&format=xml";
    $input .= file_get_contents($url);
}
对于代码的前三个元素,将返回以下内容,您可以一个接一个地执行,但API礼仪建议您执行最少的请求以获取所需的数据

<api>
    <query>
    <pages>
        <page pageid="281432" ns="0" title="Ahri">
            <revisions>
                <rev xml:space="preserve">#REDIRECT [[Ahri the 9 Tails Fox]]</rev>
            </revisions>
        </page>
        <page pageid="5578" ns="0" title="Akali">
            <revisions>
                <rev xml:space="preserve">#REDIRECT [[Akali the Fist of Shadow]]</rev>
            </revisions>
        </page>
        <page pageid="2202" ns="0" title="Alistar">
            <revisions>
                <rev xml:space="preserve">#REDIRECT [[Alistar the Minotaur]]</rev>
            </revisions>
        </page>
        </pages>
    </query>
</api>

#重定向[[Ahri the 9 Tails Fox]]
#重定向[[Akali影子之拳]]
#重定向[[Alistar the Minotaur]]
请注意,结果是缓存的,因此如果希望两次获取相同的数据,请确保使用相同的请求,并且不要更改元素的顺序,因为新的顺序将导致新的url,并且结果将再次从其服务器获取,而不是提供API缓存版本

更新


查看数组中的值,我看到一些“标题”包含引号,因此会破坏url。在使用之前,您应该使用
url encode
对url进行编码。

我已经更新了我的主要帖子,展示了我是如何获得数组的。是否可以将您的解决方案与我现有的阵列一起使用,而不是重新定义它?您不是在重新定义它,而是在连接它。在我的代码中,使用
$matches
或任何东西更改
$values
,这应该是您所要做的。
$concatValues=内爆(|“,$matches);//将返回“Ahri | Akali | Alistar”$url=”http://leagueoflegends.wikia.com/api.php?action=query&titles=$concatValues&prop=revisions&rvprop=content&format=xml”$输入=文件内容($url);打印$input不返回任何内容。那么您做错了什么,我的代码是有效的并经过测试的。检查
$url
的值以查看是否有错误。我复制粘贴了您的一个,并从以前开始放入我的数组。它仍然不起作用:(