Я пытаюсь извлечь и присвоить значениям генерального директора, председателя и любых других ключевых позиций отдельным переменным. Мне было интересно, как это можно сделать и какой лучший способ использовать. Пожалуйста, см. Мой код ниже, который имеет переменную $ keypeople, но я хотел бы, чтобы это было дополнительно разбито на переменные $ CEO; $ Председатель и т. Д. В зависимости от ролей, содержащихся в $ keypeople. В приведенном ниже примере переменная $ keypeople возвращает следующую строку:Извлечь определенные значения из строки в виде отдельных переменных
key_people = {{unbulleted list|[[Larry Page]] ([[CEO]])|[[Eric Schmidt]] ([[Chairman]])|[[Sergey Brin]] (Director of [[Google X]] and Special Projects){{cite web|url=https://www.google.co.uk/intl/en/about/company/facts/management/ |title=Management Team - Company - Google}}}}
Любая помощь в высоко оцененном.
<html>
<body>
<h2>Search</h2>
<form method="post">
Search: <input type="text" name="q" value="Google"/>
<input type="submit" value="Submit">
</form>
<?php
if (isset($_POST['q'])) {
$search = $_POST['q'];
$search = ucwords($search);
$search = str_replace(' ', '_', $search);
$url_2 = "http://en.wikipedia.org/w/api.php?
action=query&prop=revisions&rvprop=content&format=
json&titles=$search&rvsection=0&continue=";
$res_2 = file_get_contents($url_2);
$data_2 = json_decode($res_2);
?>
<h2>Search results for '<?php echo $search; ?>'</h2>
<?php foreach ($data_2->query->pages as $r):
?>
<?php foreach($r->revisions[0] as $a);
if (preg_match_all('/key_people += (.*)/', $a, $result)) {
$keypeople = trim($result[0][0]);
echo $keypeople;
} else {
echo 'Not found';
}
?>
<?php endforeach;
?>
<?php
}
?>
</body>
</html>
Если вы получили JSON, почему вы используете preg_match? Oo –
Как выглядит '$ keyleople'? Можете ли вы урезать свой вопрос до всего лишь кода, который связан с этим? – Barmar
Вместо отдельных переменных, почему бы вам не извлечь данные в ассоциативный массив? – Barmar