Получить переменную из другого файла

kikosik666

Новичок
Здравствуйте, у меня такая проблема. Есть index.php и text.php

В body index.php я получаю контент text.php (include('text.php')), в которым ест переменная $name.

Как я могу в index.php в head получить переменную $name из файла text.php?

Спасибо
 

scorpion-ds

Новичок
Уже нельзя, раньше это называлось глобальные переменные, но это зло.
Не слушай меня, я фигню сморозил, не совсем поняв, что надо.

При include все без буферов должно передаваться.
 
Последнее редактирование:

kikosik666

Новичок
Нашел код, через буфер

  1. <?php
  2. $inc_data = '';

  3. function get_text($inner) {
  4. global $inc_data;
  5. $inc_data = $inner;
  6. return '';
  7. }

  8. ob_start('get_text');
  9. include('text.php');
  10. ob_end_flush();

  11. //...body
  12. echo $inc_data;
  13. ?>
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@kikosik666, все получится, просто надо разделять данные и представление.
 

kikosik666

Новичок
Отсюда нужна получить $maxPages. Как разьделить данные?

<?php
// variables
$pagesPadding = 3; //Art jan you can also change this variable,this is the amount of numbers near the current page from both side


//functions

function showPages($currentPageNum, $padding, $maxPages) {
// show first age
if ($currentPageNum == 1) {
?> <span> <?php echo "1"; ?> </span> <?
} else {
?>
<span>
<a href="dramy/">
<?php echo "1";?>
</a>
</span>
<?
}
// SHOW NUMBERS
// check the necessity for empty part in the beginning
if ($currentPageNum-$padding <= 2) {
for($k = 2; $k <= $currentPageNum + $padding; $k++) {
if ( $k && $k == $currentPageNum ) {
// show only number without link
?> <span> <?php echo $k; ?> </span> <?php
} else {
// otherwise show number with link to that page
?>
<span>
<a href="dramy/?page=<?php echo $k; ?>">
<?php echo $k;?>
</a>
</span>
<?php
}
}
echo "<span> .. </span>";

// check the necessity for empty part in the end
} elseif($currentPageNum+$padding >= $maxPages-1) {
echo "<span> .. </span>";
for($k = $currentPageNum-$padding; $k <= $maxPages-1; $k++) {
if ( $k && $k == $currentPageNum ) {
// show only number without link
?> <span> <?php echo $k; ?> </span> <?php
} else {
// otherwise show number with link to that page
?>
<span>
<a href="dramy/?page=<?php echo $k; ?>">
<?php echo $k;?>
</a>
</span>
<?php
}
}

}
else
{
// in this case we must show empty part at both side
echo "<span> .. </span>";
for($k = $currentPageNum-$padding; $k <= $currentPageNum + $padding; $k++) {
if ( $k && $k == $currentPageNum ) {
// show only number without link
?> <span> <?php echo $k;?> </span> <?php
} else {
// otherwise show number with link to that page
?>
<span>
<a href="dramy/?page=<?php echo $k; ?>">
<?php echo $k;?>
</a>
</span>
<?php
}
}
echo "<span> .. </span>";

}

// show last page
if ($currentPageNum == $maxPages) {
?> <span> <?php echo $maxPages; ?> </span> <?
} else {
?>
<span>
<a href="dramy/?page=<?=$maxPages?>">
<?php echo $maxPages;?>
</a>
</span>
<?
}




}
?>


<div id="pagination">


<div id="pagination_numbers">
<?php

if ( isset($_GET['page']) ) { $currentPage = $_GET['page']; }
else { $currentPage = 1; }


// show pointers directed to left
if ( $currentPage != 1) {
?>
<span>
<a href="dramy/?page=<?php echo $currentPage-1; ?>"> << </a>
</span>

<?php
}

showPages($currentPage, $pagesPadding, $pages);

// show pointer directed to right
if ( $currentPage != $pages) {
?>
<span>
<a href="dramy/?page=<?php echo $currentPage+1; ?>"> >> </a>
</span>

<?php
}


?>
</div>

</div>

<script src="js/jquery.min.js"> </script>

<script type="text/javascript">

// ALIGNING PAGIANTION IN THE CENTER VIA FLOAT:LEFT PROPERTY
$(document).ready(function() {
// PAGINATION ALIGNING
var externalDiv = $("#pagination").css("width");
var internalDiv = $("#pagination_numbers").css("width");

var exLen = externalDiv.length;
var inLen = internalDiv.length;

var exDiv = externalDiv.substr(0,exLen-2);
var inDiv = internalDiv.substr(0,inLen-2);

var paginWidth = Math.round((exDiv - inDiv)/2);
$("#pagination_numbers").css({ marginLeftaginWidth+"px" });
});
</script>
 

fixxxer

К.О.
Партнер клуба
Отформатируй код и используй теги [ php ].

А вообще, вон у тебя же есть функция showPages(). То, что внутри нее, не выводится, пока не вызовешь. Намек понял?
 

fixxxer

К.О.
Партнер клуба
PHP:
<?php
$title = 'Hello World';
function renderBody(array $_viewArgs)
{
    extract($_viewArgs);
?>
<h1>Hello <?=htmlspecialchars($user)?></h1>
<p>Welcome to <?=htmlspecialchars($title)?></p>
<?php
}
PHP:
<?php
$viewArgs = [
   'user' => 'Vasya',
   'title' => 'My Homepage',
];
//...
include 'views/hello.php';
?>
<head>
<title><?=htmlspecialchars($title)?></title>
</head>
<body>
<?php
renderBody($viewArgs);
?>
</body>
 

scorpion-ds

Новичок
Неправильно, тебе не надо использовать буфер, это неоправданно усложняет код.
 

fixxxer

К.О.
Партнер клуба
Так, конечно, сработает, но это в стиле "сам создал себе проблемы и успешно их преодолел".

Важно научиться разделять view-слой. Когда ты заранее делаешь массив $viewArgs - тогда разделяешь. Попробуй и со временем поймешь, что это намного удобнее, чем мешанина.
 
Сверху