PDA

View Full Version : [PHP]sostituzione stringhe


tookie
21-04-2010, 11:26
Salve a tutti,
ho un problema con un codice PHP, so che la soluzione alla fine sarà una boiata, ma non arrivo ad una soluzione

in pratica io ho questo codice, che premetto già che è sbagliato ma è per rendere chiara la mia intenzione

<?php
ob_start();

require_once("funzioni.php");
require_once("config.php");
$html="/URI_FILE/file.html";
include $html;
//funzionamento fino adesso

$page = file_get_contents($html);
$page=str_replace( "testo da eliminare", " ", $page);
//non trovo modo per eliminare il testo e rendere visibili e funzionali le modifiche

//resto del codice//


in pratica io devo accedere tramite include ad un file html e scriverlo con i valori che ho, e fin qua ci sono. Il problema è che devo anche eliminare attraverso il codice una stringa di codice dal output dell' html senza modificare il file in se. L'idea era di riuscire in qualche modo a fare include della variabile $page, cosa che mi genera errore, mentre con un echo le funzioni che uso successivamente non fungono.:muro:

Torav
21-04-2010, 14:48
Scusa ma non fai prima a fare una cosa del genere:


$page = file_get_contents($html);
$page=str_replace( "testo da eliminare", " ", $page);

echo $page;

tookie
21-04-2010, 14:51
si ma come ho detto prima, le funzioni che vengono dopo nel codice php non vengono eseguite, rendendo inutile la pagina

cionci
21-04-2010, 15:09
Se includi il file è normale che te lo metta subito a video senza modifiche.

tookie
21-04-2010, 15:22
si me ne sono accorto, era uno dei tanti tentativi...
cosi non fa nulla

<?php
ob_start();

require_once("funzioni.php");
require_once("config.php");
$html="/URI_FILE/file.html";

$page = file_get_contents($html);
$page=str_replace( "testo da eliminare", " ", $page);

include $html;




mentre cosi mi torna errore, da quel che ho capito perché include() richiede un file
<?php
ob_start();

require_once("funzioni.php");
require_once("config.php");
$html="/URI_FILE/file.html";

$page = file_get_contents($html);
$page=str_replace( "testo da eliminare", " ", $page);

include $page;



invece in questo modo le due righe di codice php nel file html non vengono eseguiti, mentre con un include vengono eseguiti
<?php
ob_start();

require_once("funzioni.php");
require_once("config.php");
$html="/URI_FILE/file.html";

$page = file_get_contents($html);
$page=str_replace( "testo da eliminare", " ", $page);

echo $page;

cionci
21-04-2010, 15:32
$page non è un file, è una stringa.

L'esempio che si trova sull'help di eval dovrebbe fare al caso tuo:

<?php
$var = 'dynamic content';
echo eval('?>' . file_get_contents('template.phtml') . '<?');
?>

kk3z
21-04-2010, 20:01
hai iniziato bene con ob_start, ma non l'hai capito bene:
<?
ob_start();

require_once("funzioni.php");
require_once("config.php");
include("/URI_FILE/file.html");

$page = ob_get_clean();
$page = str_replace( "testo da eliminare", " ", $page);

echo $page;

tookie
22-04-2010, 08:57
ora funziona tutto perfettamente,grazie ragazzi :D :D :D