Как да съхраним в променлива изходния код на php функция или php файл

0
390
прегледа
php

Понякога се налага да манипулираме изходният резултат, който дава php функция или вмъкнати чрез include файлове. Най-удобно това става, като резултатът от функцията или файла, който те извеждат чрез echo, print и др., се вмъкне в променлива. Примерите, които ще дам са пригодени за WordPress, но те могат да се използват във всеки php скрипт.

Прехващане на резултата от вмъкнат php файл

Можем да използваме фунциите ob_start() и ob_get_clean(), за да започнем буферирането и съхраняване на съдържанието на буфера. Ето един примерен код:

ob_start();
include(ABSPATH . 'path/to/include/file.php');
$content = ob_get_clean();

 

ob_get_clean() буферира извежданото съдържание, изчиства буфера и завършва буферирането. Има още няколко ob_ функции, но ние ще разгледаме само тези двете.

Прехващане на резултата от php функция

Ето един пример:

<?php
function f1() {
 echo "f1";
}
function f2() {
 echo "f2";
}
ob_start();
f1();
ob_start();
f2();
$content_inner = ob_get_clean();
$content_outer = ob_get_clean();
print "content_inner=$content_inner\n";
print "content_outer=$content_outer\n";
?>

Ето резултата от изпълнението на примера по-горе:

content_inner=f2
content_outer=f1

Това показва, че изведеният резултат от двете функции е съхранен в променливи, които лесно могат да се манипулират и използват.

Предимства

Ето някои предимства, които дава използването на функциите ob_start() и ob_get_clean():

1. Използването на изведения резултат от php функция и съхраняването му в променливи, позволява променливата да се използва многократно в кода
2. Променливата, в която се съхранява изведения резултат от php функция, може лесно да се манипулира, което дава по-голяма гъвкавост на извеждания резултат.

Споделете с мен дали статията ви е била полезна.

Роден съм през 1995 г. в гр. Сливен. Завършил съм Великотърновски университет "Св. св. Кирил и Методий". Имам най-различни интереси и ми е приятно да общувам със сериозни хора, от които мога да почерпя опит. Напоследък се занимавам с блогване и Интернет маркетинг.
СПОДЕЛИ

Вашият коментар

This site uses Akismet to reduce spam. Learn how your comment data is processed.