Разбор данных из SEMRush API в PHP [точка с запятой] - PullRequest
0 голосов
/ 08 июня 2018

Я делаю вызов API Semrush и получаю следующий ответ сервера:

Database;Domain;Rank;Organic Keywords;Organic Traffic;Organic Cost;Adwords Keywords;Adwords Traffic;Adwords Cost;PLA uniques;PLA keywords 
us;seobook.com;98072;14085;14300;62233;0;0;0;0;0

Это фактически две строки, значения которых соответствуют друг другу.Пример:

База данных = us, Домен = seobook.com, Rank = 98072

и т. Д. Мне нужно разобрать эти значения в переменные.

Все, что мне действительно нужно, это: Domain, Organic Traffic, Organic Cost

Поэтому я хочу сохранить их значения в $domain, $traffic, $cost

Как мне это сделатьэто в PHP?

Пожалуйста, помогите всем.Заранее спасибо

1 Ответ

0 голосов
/ 08 июня 2018

Этот формат называется CSV (значения, разделенные символами).Это часто используется для больших списков записей.PHP имеет функцию fgetcsv() для чтения этого формата (из файлового ресурса).

$csv = <<<'CSV'
Database;Domain;Rank;Organic Keywords;Organic Traffic;Organic Cost;Adwords Keywords;Adwords Traffic;Adwords Cost;PLA uniques;PLA keywords 
us;seobook.com;98072;14085;14300;62233;0;0;0;0;0
CSV;
$stream = fopen('data://text/plain;base64,'.base64_encode($csv), 'rb');

$columns = NULL;
$values = [];
// read a line from the stream
while ($line = fgetcsv($stream, 0, ';')) {
  if (NULL === $columns) {
    // first line is columns, store it
    $columns = $line;
    // and continue with the next line
    continue;
  }
  // any other line combine the columns with the values and store
  $values[] = array_combine($columns, $line);
}

var_dump($values);

Вывод:

array(1) {
  [0]=>
  array(11) {
    ["Database"]=>
    string(2) "us"
    ["Domain"]=>
    string(11) "seobook.com"
    ["Rank"]=>
    string(5) "98072"
    ["Organic Keywords"]=>
    string(5) "14085"
    ["Organic Traffic"]=>
    string(5) "14300"
    ["Organic Cost"]=>
    string(5) "62233"
    ["Adwords Keywords"]=>
    string(1) "0"
    ["Adwords Traffic"]=>
    string(1) "0"
    ["Adwords Cost"]=>
    string(1) "0"
    ["PLA uniques"]=>
    string(1) "0"
    ["PLA keywords "]=>
    string(1) "0"
  }
}

СОВЕТ: В этом примере используется URL-адрес данных для доступа к CSVстрока как файловый ресурс.В реальной реализации это не требуется, API должен предоставлять файловый ресурс / поток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...