Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

henry franklin

[Resolvido] como transformar uma string numa variavel

Recommended Posts

olá galera!

 

estou quebrando a cabeça para tentar transformar uma string em uma variavel.

 

siguinte: estou montando um modulo onde eu apenas insira um novo arquivo (php) no 'local X' e uma pagina central liste os arquivos e pegue as informações dentro do arquivo encontrado e exiba-o.

 

arquivo postado no "local X"

<?php

$info['A'] = 'aaaa';
$info['B'] = 'bbbb';

$conteudos .= 'etc etc etc etc etc etc etc';

$conteudos .= 'etc etc etc etc etc etc etc';

echo $conteudos;
?>

arquivo "central"

$diretorio = 'diretorioX/'; 
$folder = listdirectory($diretorio); // funcao externa tah ok
foreach($folder['arquivos'] as $doc){
	if(eregi('prefixopadrao_[a-z]+\.php',$doc)){
		$search_rep = array('servicos_','.php');
		// lista as pagina para acesso
		$contA[] = '<a href="str_replace($search_rep,'',$doc).'">'.str_replace($search_rep,'',$doc).'</a><br />';
		$filelines = file($diretorio.$doc,FILE_SKIP_EMPTY_LINES);
		foreach($filelines as $data) {
			if(ereg('\$info\[\'[A|C|B]\'\]',$data)){

######## aqui começa o problema ##########
			$ff = explode('=', $data);
			$newff = $ff[0];
			echo $$newff = $ff[1];
			echo  '     > '.$info.'<br />';}
		}
	}
}

meu desejo é que pegue $info['A'] e $info['B'] e tranforme-os novamente em variavel

no caso que quando "$newff" transforme-se na array "$info"

 

obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa string vem de onde? De dentro de um arquivo?

sim, vem de outro arquivo

 

ela na verdade é uma variavel se fosse incluida normalmente como manda o PHP

($info['A'] e $info['B'] no primeiro código)

 

como chamei o arquivo pelo file() ela vem como uma string

 

a idéia é transformar "$info" em variável denovo para pegar as informações dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa eh a ideia

 

mas eu quero chamar $info['A'] ao invés de $variável.

 

sei q usando um segundo "cifrão" ($$) ele ao invés da informação assume o próprio papel da variavel.

 

quando eu leio o arquivo por file(); ele vem assim:

Array
(
	[0] => <?php
	[1] => 
	[2] => $info['A'] = 'aaaa';
	[3] => $info['B'] = 'bbbb';
	[4] => $contA[] = 'anuidades';
	[5] => 
	[6] => /*
	[7] => $contA[] = '';
	[8] => */
	[9] => 
	[10] => ?>
)

eu procuro os valores "$info" com "eregi()"

if(ereg('\$info\[\'[A|C|B]\'\]',$data)){ 
(...)
ele vai conseguir localizá-los nas linhas [2] e [3]. ok!

 

finalmente, quero que ele me dê os valores 'aaaa' e 'bbbb' das variáveis "$info" do outro arquivo

Compartilhar este post


Link para o post
Compartilhar em outros sites

oba!!

consegui!

tive q esquartejar totalmente mas tah valendo!

 

agora fica assim:

// abre o arquivo
$filelines = file($diretorio.$doc,FILE_SKIP_EMPTY_LINES);
// lista as linhas do arquivo
foreach($filelines as $data) {
	// procura as linhas com "$info[]"
	if(ereg('\$info\[\'[A|C|B]\'\]',$data)){
		// quebra a suposta variavel do resultado
		$ff_total = explode('=', $data);
		$patt = '/[(\$info)\[|\]|\'| |;]/';
		// procura e apaga conforme "$patt" para deixar apenas o nome do identificador do respectivo "$info"
		$infoId = preg_replace($patt,"",$ff_total[0]);
		// limpa a suposta variavel
		$infoVal = preg_replace($patt,"",$ff_total[1]);
		// aki montamos denovo a variavel "$info" com seu respectivo identificador "$infoId" com o valor resgatado "$infoVal"
		$info[$infoId] = $infoVal;
		// e imprimimos!!
		echo $info[$infoId].'<br />';
	}
}

Maravilha!

 

vlw pela força André

 

> num gosto de futebol msm!

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa hinom!

 

nao daria pra usar include() porque senao teria informações desnecessária no código e portanto a pagina ao ser exibida teria "coisas indesejaveis", e como os arquivos segue um padrao de variáveis, ficaria bem bagunçado.

no caso apenas resgato algumas informações de "configuraçoes" de exibição para montálas na pagina q lista todas os arquivos de uma determinada pasta.

Ai depois, se solicitado o determinado arquivo é chamado pelo tal include().

 

isso tudo é soh por causa da preguiça:

só terei o trabalho de postar o arquivo na pasta específica e ele mesmo se instala, sacou!?

pura preguiça!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.