SEMRUSH API에 대한 프로젝트를 진행 중이며 결과는 $ field1; field2에서 너무 많이 분리됩니다.
현재 결과는 열을 기준으로 서로 5 개의 reslts가 있지만 두 번째 배열 만 필요합니다.
if (isset($_POST['search_term'])) {
$kwtext1 = str_replace(" ", '+', ($_POST['search_term']));
$kwtext = str_replace("\r", '', trim($kwtext1));
$kwdata = array();
$kwlines = explode("\n", $kwtext);
$db = "us";
$limit = "10";
}
foreach ($kwlines as $kw) {
usleep(100);
$u = 'http://' . $db . '.api.semrush.com/?action=report&type=phrase_this&phrase=' . $kw . '&key=' . $key . '&display_limit=' . $limit . '&display_offset=0&export=api&export_columns=Ph,Nq,Cp,Co,Nr';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $u);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$answer = curl_exec ( $ch );
$kwdata = explode ( "\n", trim ( $answer ) );
$kwfields = explode ( ";", array_shift ( $kwdata ) );
if ( count ( $kwdata ) > 0 )
{
?>
<table class="output">
<tr><th>Domain 1</th>
<?php $csv_output .= ' ' . ", " . 'Domain' . ", ";?>
<?
foreach ( $kwfields as $field )
{
?>
<th><?= $field; ?></th>
<?php $csv_output .= $field . ", ";?>
<?
}
?>
</tr>
<?
foreach ( $kwdata as $dataline )
{
$values = explode ( ";", $dataline, count ( $kwfields ) );
?>
<tr><td><? echo $kw ?></td>
<?php $csv_output .= $kw . ", ";?>
<?
foreach ( $values as $value )
{
?>
<td><?= $value; ?></td>
<?php $csv_output .= $value . ", ";?>
<?
}
?>
</tr>
<?
}
?>
</table>
<?
}
else
{
?>
No data found for your request
<?
}
}
?>
두 번째 결과를 원하고 5 개의 결과를 얻을 수 있다는 것을 알고 있다면 라인을 변경한다고 가정합니다.
$kwfields = explode(";", array_shift($kwdata));
에:
$kwfields = explode(";", $kwdata[1]);
작동합니다.
그러나 데이터 행이 2 개 이상 없으면 실패합니다. 2 개 이상받을 수 있나요? 그렇지 않은 경우이 문제를 확인해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다