anolsi Posted February 18, 2008 at 08:58 PM Report Share #167741 Posted February 18, 2008 at 08:58 PM Tenho um ficheiro em PHP no qual faço o require_once('def.php') do ficheiro em PHP que me vai inicializar variáveis a nível global. No entanto, o que eu queria era poder alterar essas variáveis, e que estas ficassem guardadas no def.php E sempre que utilizar ele reflicta as gravações anteriores. Será que alguém me pode ajudar? "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
Guest id194 Posted February 19, 2008 at 12:09 AM Report Share #167769 Posted February 19, 2008 at 12:09 AM Segundo percebi, tens um ficheiro def.php que tem algo como: $var1 = "abc"; $var2 = "def"; E queres alterar o valor dessa mesmas variáveis de forma que fiquem guardadas fisicamente no ficheiro def.php. É isso? É que se for, recomendo-te a esqueceres esse método e guardares os dados que queres num ficheiro XML por exemplo e depois é só carregares os dados do XML e gravar para o XML quando quiseres. Link to comment Share on other sites More sharing options...
anolsi Posted February 19, 2008 at 08:00 PM Author Report Share #167873 Posted February 19, 2008 at 08:00 PM Nazgulled será que podias explicar a maneira de guardar dados em XML? é que ainda me estou a iniciar em PHP... Se não fosse pedir muito... ? "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
infopc Posted February 19, 2008 at 10:01 PM Report Share #167892 Posted February 19, 2008 at 10:01 PM dá uma vista de olhos por aqui http://pt2.php.net/xml O que não tem solução, solucionado esta... Link to comment Share on other sites More sharing options...
MX+ Posted February 19, 2008 at 10:40 PM Report Share #167909 Posted February 19, 2008 at 10:40 PM Se queres ter um ficheiro com configurações (que me parece) XML parece-me exagerado. Existem outras alternativas. Esta é uma class que le os dados dum ficheiro de texto: http://www.phpclasses.org/browse/package/1602.html Há muitas outras. Coloca dúvidas Link to comment Share on other sites More sharing options...
djthyrax Posted February 19, 2008 at 11:42 PM Report Share #167921 Posted February 19, 2008 at 11:42 PM Um sistema simples é usares o serialize. function guardarVar($vars){ // recebe array(nome da variavel a guardar => valor) $z = ''; foreach($vars as $k => $v) $z .= $k." - ". serialize($v) . "\t---\n\t---\n"; fwrite(fopen("vars.txt", "w"), $z); } function abrirVar(){ //devolve array = à anterior $z = array() foreach(explode("\t---\n\t---\n", file_get_contents("vars.txt")) as $v) foreach(explode(" - ", $v, 1) as $x) $z[$x[0]] = unserialize($x[1]); return $z; } Serve? Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
Guest id194 Posted February 20, 2008 at 01:27 AM Report Share #167934 Posted February 20, 2008 at 01:27 AM Nazgulled será que podias explicar a maneira de guardar dados em XML? é que ainda me estou a iniciar em PHP... Se não fosse pedir muito... ? Eu uso o SimpleXML do PHP5. Lê a documentação sobre isso, não é difícil de usar. @MX+ Exagerado porquê? Não vejo razão para tal... No script que estou a fazer tenho usado XML para algumas coisas em vez de outros métodos... Por exemplo, configurações do script e ficheiros de língua e é perfeito. O XML permite organizar e estruturar esses dados de forma bastante simples onde qualquer pessoa os pode modificar. Link to comment Share on other sites More sharing options...
anolsi Posted February 20, 2008 at 08:16 PM Author Report Share #168043 Posted February 20, 2008 at 08:16 PM Um sistema simples é usares o serialize. Serve? Obrigado djthyrax. Mas, corrige-me se estiver errado, falta um ponto-e-virgula aqui: $z = array() Certo? "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
anolsi Posted February 20, 2008 at 09:52 PM Author Report Share #168055 Posted February 20, 2008 at 09:52 PM Alterei o código porque o "indice" do array ficava apenas com a primeira letra e não com o nome todo. function guardarVar($vars){ // recebe array(nome da variavel a guardar => valor) $z = ''; foreach($vars as $k => $v) $z .= $k." - ". serialize($v) . "\t---\n\t---\n"; fwrite(fopen("Settings.txt", "w"), $z); } function abrirVar(){ //devolve array = à anterior $z = array(); foreach(explode("\t---\n\t---\n", file_get_contents("Settings.txt")) as $v) foreach(explode(" - ", $v, 1) as $x) { $num = strpos($x, "-"); $z[substr($x, 0, $num-1)] = unserialize($x[0]); } return $z; } No entanto o unserialize não funciona, já que não devolve nada... "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
djthyrax Posted February 20, 2008 at 10:03 PM Report Share #168056 Posted February 20, 2008 at 10:03 PM Obrigado djthyrax. Mas, corrige-me se estiver errado, falta um ponto-e-virgula aqui:Certo? Sim, falta. É o hábito do Python 😄Anyway, o erro de ser a primeira letra foi falha minha. O 1 no explode() devia ser 2 (yay for confusion with Python). Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
DaScripter Posted February 21, 2008 at 05:27 PM Report Share #168162 Posted February 21, 2008 at 05:27 PM Para quê complicar o incomplicável? Com um for() cycle, a funçao file(), uma array, e file management functions fazes isso na boa. Lembro-me que usei este método quando criei uma GUI para uma wiki. Link to comment Share on other sites More sharing options...
anolsi Posted February 21, 2008 at 10:31 PM Author Report Share #168242 Posted February 21, 2008 at 10:31 PM Não sei se isto deveria ser colocado aqui, mas como mudei o tipo de ficheiro, este agora está vulnerável a download, e pode dar informações que eu não gostaria de mostrar a desconhecidos. Com o PHP o máximo que ele fazia era recarregar as variáveis... Será que me podem ajudar ou tenho que ir para o quadro segurança? "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
DaScripter Posted February 21, 2008 at 10:41 PM Report Share #168244 Posted February 21, 2008 at 10:41 PM Queres um script entao que "reescreva" os valores da variaveis como bem entenderes certo? Se sim, crio um script que te possa ajudar. Quanto a segurança do ficheiro, podes alterar a CHMOD... embora nem sempre seja muito fiável. Link to comment Share on other sites More sharing options...
anolsi Posted February 22, 2008 at 02:39 PM Author Report Share #168336 Posted February 22, 2008 at 02:39 PM Queres um script entao que "reescreva" os valores da variaveis como bem entenderes certo? Sim, obrigado. Quanto a segurança do ficheiro, podes alterar a CHMOD... embora nem sempre seja muito fiável. Podes explicar o que é o CHMOD? 🙂 "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
DaScripter Posted February 22, 2008 at 05:40 PM Report Share #168361 Posted February 22, 2008 at 05:40 PM Podes explicar o que é o CHMOD? 🙂 CHMOD é um comando de Unix que permite-te alterar permissões (e logicamente, restrições) a ficheiros e directórios. Para quem não tem acesso à Shell (Terminal) do seu servidor, muito software de "acesso grafico" por ftp a servidores permitem-te alterar a CHMOD com apenas alguns cliques. Através do terminal, o comando é: chmod [valor] [ficheiro/directorio] O valor será um numero de 3 digitos, tendo caracteristicas diferentes, eu geralmente uso 711. Gerará o famoso erro 403, "Forbidden". Quanto ao script... Caso não saibas como fazê-lo, ajudo-te nisso, mas basicamente a lógica será, ler o numero de linhas do ficheiro, e reescreve-lo como quiseres alterando o valor de um determinado argumento que tu desejares. Link to comment Share on other sites More sharing options...
Guest id194 Posted February 23, 2008 at 01:03 PM Report Share #168525 Posted February 23, 2008 at 01:03 PM Queres um script entao que "reescreva" os valores da variaveis como bem entenderes certo? Se sim, crio um script que te possa ajudar. Quanto a segurança do ficheiro, podes alterar a CHMOD... embora nem sempre seja muito fiável. Eu acho esta solução para o que tu queres fazer um bocado para o estúpida, mas pronto... Tens tantas soluções porquê que vais para a pior? Link to comment Share on other sites More sharing options...
DaScripter Posted February 23, 2008 at 03:44 PM Report Share #168566 Posted February 23, 2008 at 03:44 PM lol? Mas é o que ele está a pedir. Se eu fosse ele usava uma tabela para os dados, mas ele quer reescrever os valores no ficheiro. So yeah, RTM ^^ Link to comment Share on other sites More sharing options...
djthyrax Posted February 23, 2008 at 05:00 PM Report Share #168589 Posted February 23, 2008 at 05:00 PM Eu acho esta solução para o que tu queres fazer um bocado para o estúpida, mas pronto... Tens tantas soluções porquê que vais para a pior? Pior porquê? Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
Guest id194 Posted February 25, 2008 at 01:51 PM Report Share #168966 Posted February 25, 2008 at 01:51 PM Porquê não tem sentido nenhum e se as outras são muito melhores, muito mais práticas e fazem mais sentido esta é a pior. Desculpa lá, mas para mim não faz sentido nenhum ter um ficheiro PHP com variáveis definidas e depois querer modificar os valores e ter que reescrever o ficheiro programando "PHP dentro de PHP" (acho que me percebe)... Been there, done that (quando ainda me iniciava em PHP) e vi que é uma solução parva, que não faz sentido nenhum e só da trabalho desnecessário. Mas cada um sabe de si, e eu acho esta forma de fazer o que ele quer a mais estúpida possível para resolver o problema. Link to comment Share on other sites More sharing options...
DaScripter Posted February 25, 2008 at 06:07 PM Report Share #169017 Posted February 25, 2008 at 06:07 PM You can talk the talk, but can you walk the walk? Soas-me um tanto presunçoso e full of yourself, pergunto-me se és e vales o que dizes. Anyways, como já disse, no meu lugar eu usaria uma tabela, mas foi isso que ele pediu e é nisso que o ajudamos, sinto que é desnecessário dares essas opiniões estúpidas e sinceramente, desnecessárias. Não percebo o "trabalho desnecessário" se com cerca de 8 linhas de código ou menos faz-se isso. "Been there, done that", so have I. Qual é o teu objectivo nessa afirmação? Não me parece a atitude certa a se ter num fórum destinado ao suporte e ajuda dos menos "conhecedores" da matéria. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now