Всем привет, помогите пожалуйста решить проблему.
Сейчас всё подробно опишу и в конце предоставлю полный код целиком.
Есть первый php код который находится в body:
<?php
$text0 = file_get_contents("https://домен.ru/archivexml/{news-id}.xml");
$data = array();
preg_match_all('/<option value="(\d*)".*?>.*?<\/option>/m', $text0, $out1);
preg_match('/img src="(.*?)"/m', $text0, $out3);
preg_match('/img src="(.*?)"/m', $text0, $out4);
$out3 = preg_replace("#http://(www\.)?(.*?)/#is", '', $out3);
$out3 = preg_replace("#([^/]*)$#", '', $out3);
$out4 = preg_replace("/\?.*/", '', $out4);
$out4 = preg_replace("/.*?\./", '', $out4);
?>
Данный код берёт из файла xml ссылку на нужное мне изображение, пилит её на части как мне нужно, и выдаёт их с помощью print_r
Вот так:
<img src="<?php print_r ($out3[1]);?>1.<?php print_r ($out4[1]);?>">
print_r $out3[1] выводит
1/amazing/029/print_r $out4[1] выводит
png
В итоге получается ссылка на картинку 1/amazing/029/1.png
Далее я ещё много где использую print_r но всё это после основного php скрипта.
А сейчас мне необходимо эту же ссылку передать в head сайта в мета теги.
Придумал примерно вот такой выход, через php передать информацию до отрисовки страницы. Это второй код:
<?php echo outimgformeta();?> //данную часть я размещаю в head сайта в мета теги
<?php
function outimgformeta()
{
global $testphpcode;
$testphpcode = '<?php print_r ($out3[1]);?>1.<?php print_r ($out4[1]);?>';
return $testphpcode;
}
?>
Это работает, но проблема в том, что передаётся не
1/amazing/029/1.png а само
<?php print_r ($out3[1]);?>1.<?php print_r ($out4[1]);?> в текстовом виде.
Вот так выглядит полный код:
<head>
<meta property="og:image" content="<?php echo outimgformeta();?>">
<meta itemprop="image" content="<?php echo outimgformeta();?>">
<link rel="image_src" href="<?php echo outimgformeta();?>">
</head>
<body>
// Данный php код трогать и менять нельзя, слишком поздно его менять.
<?php
$text0 = file_get_contents("https://домен.ru/archivexml/{news-id}.xml");
$data = array();
preg_match_all('/<option value="(\d*)".*?>.*?<\/option>/m', $text0, $out1);
preg_match('/img src="(.*?)"/m', $text0, $out3);
preg_match('/img src="(.*?)"/m', $text0, $out4);
$out3 = preg_replace("#http://(www\.)?(.*?)/#is", '', $out3);
$out3 = preg_replace("#([^/]*)$#", '', $out3);
$out4 = preg_replace("/\?.*/", '', $out4);
$out4 = preg_replace("/.*?\./", '', $out4);
?>
// Этот php код менять можно.
<?php
function outimgformeta()
{
global $testphpcode;
$testphpcode = '<?php print_r ($out3[1]);?>1.<?php print_r ($out4[1]);?>';
return $testphpcode;
}
?>
</body>
Помогите изменить второй скрипт так, чтобы передавалось это
1/amazing/029/1.png
Сразу говорю, первый php код переместить в head сайта не представляется возможным.