Как вывести информацию?

189
01 апреля 2018, 21:17

Здравствуйте подскажите как вывести информацию, шото никак не доходит как есть файл dat и внем скажем есть запись одна только cry.jpg<|>информация<|>информация2

 $page_descr = 'информация ';
 $page_keyws = 'информация ';
 $page_img = 'cry.jpg';

нужно чтоб вывелось на странице в метатегах

    require ('data/page_about_settings.php');
 function page_about_details($about_sym_link)
{
    $url = $about_sym_link . "/data/page_about_details.dat";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT,       "Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,  false);
    curl_setopt($ch, CURLOPT_HEADER,          false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,  true); //если выпадает ошибка на эту строку - попробуйте закомментировать её
    curl_setopt($ch, CURLOPT_URL,             $url);
    curl_setopt($ch, CURLOPT_REFERER,         $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,  true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,  5);
    curl_setopt($ch, CURLOPT_TIMEOUT,         5);
    $data = curl_exec($ch);
    //$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    // разбиваем по строкам
    $res = explode("\n", $data);
    foreach($res as $rows) {
        $row = explode("<|>", $rows);
        if (!strripos($rows, "<|>")) continue; //Но вот так наверно лучше будет.

    $page_img = $row[0];  //НЕ выводится в наружу
    $page_descr = $row[1]; //НЕ выводится в наружу
    $page_keyws = $row[2];  //НЕ выводится в наружу
    }
    return $data;
    //return ($httpcode >= 200 && $httpcode < 300) ? $print : false;
}
echo page_about_details($about_sym_link);
var_dump(page_about_details($about_sym_link));
Answer 1

Вы никак не возвращаете нужные значения из функции и в цикле foreach при каждом проходе перезаписываете переменные $page_img, $page_descr, $page_keyws.

Нужно поменять:

foreach($res as $rows) {
    $row = explode("<|>", $rows);
    if (!strripos($rows, "<|>")) continue; //Но вот так наверно лучше будет.
    $img .= $row[0];  //выводится
    $descr .= $row[1];//выводится
    $keyws .= $row[2];//выводится
    var_dump($img);//выводится
    $page_img = $row[0];  //НЕ выводится в наружу
    $page_descr = $row[1]; //НЕ выводится в наружу
    $page_keyws = $row[2];  //НЕ выводится в наружу
}
return false;

На

$page = [];
foreach($res as $row) {
    $row = explode("<|>", $rows);
    if (!strripos($rows, "<|>")) continue; //Но вот так наверно лучше будет.
    $img .= $row[0];  //выводится
    $descr .= $row[1];//выводится
    $keyws .= $row[2];//выводится
    var_dump($img);//выводится
$page[] = [
    'page_img' => $row[0],
    'page_descr' => $row[1],
    'page_keyws' => $row[2]
];  
}
return $page;

Результатом работы функции будет возвращение массива $page с нужными значениями.

Пример вызова функции:

$page = page_about_details($about_sym_link); // $about_sym_link - в переменной нужная ссылка
var_dump($page);

И не понятен смысл переменной $img, $descr, $keyws в цикле foreach.

Вывод meta, пример:

<meta name="description" content="<?=$page[0]['page_descr'];?>" />

UPD

foreach($res as $row) {
    $row = explode("<|>", $rows);
    if (!strripos($rows, "<|>")) continue; //Но вот так наверно лучше будет.
    $img .= $row[0];  //выводится
    $descr .= $row[1];//выводится
    $keyws .= $row[2];//выводится
    var_dump($img);//выводится
    $page_img[] = $row[0];
    $page_descr[] = $row[1];
    $page_keyws[] = $row[2];
}
return false;

Заменить:

function page_about_details($about_sym_link)

на:

function page_about_details($about_sym_link, &$page_img, &$page_descr, &$page_keyws)

Пример вызова функции:

$page_img = [];
$page_descr = [];
$page_keyws = [];
$page = page_about_details($about_sym_link, $page_img, $page_descr, $page_keyws); // $about_sym_link - в переменной нужная ссылка
var_dump($page_img, $page_descr, $page_keyws);

PHP Функции

UPD2

В html делаете по примеру:

<meta name="description" content="<?=implode(',', $page_descr);?>" />

UPD3

Весь Ваш код с правками

require ('data/page_about_settings.php');
function page_about_details($about_sym_link){
    $url = $about_sym_link . "/data/page_about_details.dat";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT,       "Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,  false);
    curl_setopt($ch, CURLOPT_HEADER,          false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,  true); //если выпадает ошибка на эту строку - попробуйте закомментировать её
    curl_setopt($ch, CURLOPT_URL,             $url);
    curl_setopt($ch, CURLOPT_REFERER,         $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,  true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,  5);
    curl_setopt($ch, CURLOPT_TIMEOUT,         5);
    $data = curl_exec($ch);
    //$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    // разбиваем по строкам
    $res = explode("\n", $data);
    $page = [];
    foreach($res as $row) {
        $row = explode("<|>", $row);
        $page[] = [
            'page_img' => $row[0],
            'page_descr' => $row[1],
            'page_keyws' => $row[2]
        ];  
    }
    return $page;
}
$page = page_about_details($about_sym_link); // $about_sym_link - в переменной нужная ссылка
var_dump($page);
/*
array(1) {
  [0]=>
    array(3) {
        [page_descr]=>
        string() "информация",
        [page_keyws]=>
        string() "информация",
        [page_img]=>
        string() "cry.jpg"
    }
}
*/

В html, прописываем meta:

<meta name="description" content="<?=$page[0]['page_descr'];?>" />
<meta name="keywords" content="<?=$page[0]['page_keyws'];?>" />
READ ALSO
Оповещение об ошибке php jquery ajax

Оповещение об ошибке php jquery ajax

Как сделать оповещение об ошибке php из лога в реальном времени с помощью jquery ajax

192
Vagrant Warning: Connection aborted. Retrying

Vagrant Warning: Connection aborted. Retrying

ЗдравствуйтеЯ новичок в вагранте и всем что с ним связано

200
Работа с файлом в C++

Работа с файлом в C++

Мне нужно создать файл txt, после чего написать программу, которая читает по строкам файла, подсчитывает кол-во повествовательных предложений...

205