una str_replace remove parte html_entity_decode ent_quotes eliminar caracteres cadena php include

php - remove - str_replace



Obtenga los resultados de una inclusiĆ³n en una cadena en PHP? (4)

También puede hacer que el archivo incluido devuelva el resultado, en lugar de imprimirlo. Entonces puedes agarrarlo en una variable, tal como lo haces en tu segundo ejemplo.

<?php return ''Hello world.''; ?>

Digamos que el archivo test.php se ve así:

<?php echo ''Hello world.''; ?>

Quiero hacer algo como esto:

$test = include(''test.php''); echo $test; // Hello world.

¿Alguien puede señalarme el camino correcto?

Editar:

Mi objetivo original era extraer el código PHP entremezclado con HTML de una base de datos y procesarlo. Esto es lo que terminé haciendo:

// Go through all of the code, execute it, and incorporate the results into the content while(preg_match(''/</?php(.*?)/?>/ims'', $content->content, $phpCodeMatches) != 0) { // Start an output buffer and capture the results of the PHP code ob_start(); eval($phpCodeMatches[1]); $output = ob_get_clean(); // Incorporate the results into the content $content->content = str_replace($phpCodeMatches[0], $output, $content->content); }


Usar el buffer de salida es la mejor opción.

ob_start(); include ''test.php''; $output = ob_get_clean();

PD: Recuerde que puede anidar los búferes de salida al contenido de su corazón, si es necesario.


test.php

<?php return ''Hello World''; ?>

<?php $t = include(''test.php''); echo $t; ?>

Siempre que el archivo incluido tenga una declaración de devolución, funcionará.


$test = file_get_contents(''test.php''); echo $test; //Outputs "Hello world.";