Как извлечь и назначить данные из вывода cURL? - PullRequest
1 голос
/ 15 декабря 2010

код:

function GetCurlPage ($pageSpec)
{
$ch = curl_init($pageSpec);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$tmp = curl_exec ($ch);
curl_close ($ch);
$tmp = preg_replace('/(?s)<meta http-equiv="Expires"[^>]*>/i', '', $tmp);
return $tmp;
}

$url = "https://www.domain.com/check.php?domain=" .
$domain . "&suffixes=" . $suffixes . "&fuzzysearch=" . $fuzzysearch;
$output = GetCurlPage("$url");

print $output;

Он выводит 3 строки html, однако я хотел назначить переменную каждой строке, чтобы потом что-то с ней сделать ...

Т.е.:

if ($line_1_of_output=="Hi")
{
"do something"
}

if ($line_2_of_output=="Hi")
{
"do something else"
}

Как вывести каждую строку в отдельной переменной в XML, если это лучший способ?

Спасибо!

1 Ответ

2 голосов
/ 15 декабря 2010

Если я вас не правильно понял, вы можете просто взорвать вывод cURL и затем перебрать массив.

<?php
// cURL code...
$tmp = explode("<br>", $tmp);

foreach ($tmp AS $lnum => $line) {
  var_dump($line);
  echo '<br>';
}


Попробуйте это:

<code>function GetCurlPage ($pageSpec)
{
  $ch = curl_init($pageSpec);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  $tmp = curl_exec ($ch);
  curl_close ($ch);
  $tmp = preg_replace('/(?s)<meta http-equiv="Expires"[^>]*>/i', '', $tmp);
  $tmp = explode('<br>', $tmp);

  // Test the array.
  foreach ($tmp AS $line) {
    echo '<pre>';
    print_r($line);
    echo '
';} // Делаем что-то с каждой строкой.$ tmp [0] = str_replace ('foo', 'bar', $ tmp [0]);$ tmp [1] = str_replace ('animal', 'monkey', $ tmp [1]);$ tmp [2] = str_replace ('cat', 'dog', $ tmp [2]);вернуть $ tmp;}
...