intrebare de curiozitate :)

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

Avatar utilizator
saitek
Senior Member
Mesaje: 454
Membru din: Dum Sep 23, 2007 6:40 am

Mesajde saitek » Joi Apr 24, 2008 10:50 pm

//LE
Acuma am inteles ce vrei sa faci, cred ca

Cod: Selectaţi tot

function cool(){
$res = fopen('myfile.txt','r');

while(!feof($res)){
    eval('$'.fgets($res, 1024).';');
}
fclose($res);
global $fruct;
global $culoare;
}

in fine nu l-am testat,dar logic ar trebuii sa mearga


Blog Beta|Translate to rgb
GOOGLE = un mare prost

Avatar utilizator
MihaiC
Senior Member
Mesaje: 1644
Membru din: Dum Mai 14, 2006 8:07 pm

Mesajde MihaiC » Joi Apr 24, 2008 11:41 pm

Of...logica ma-sii

Cod: Selectaţi tot


function cool(){
$res = fopen('myfile.txt','r');

while(!feof($res)){
    eval('global $'.fgets($res, 1024).';');
    }
fclose($res);
}
Dev @ oblio.eu

Avatar utilizator
Quber
Senior Member
Mesaje: 874
Membru din: Mar Iun 27, 2006 8:33 pm
Localitate: localhost
Contact:

Mesajde Quber » Joi Apr 24, 2008 11:49 pm

@MihaiC, daca nu ma gresesc cum ai facut tu ai declarat o variabila dinafara functiei ca sa fie si in functie nu..?
A man who dares to waste one hour of time has not discovered the value of life.

Avatar utilizator
MihaiC
Senior Member
Mesaje: 1644
Membru din: Dum Mai 14, 2006 8:07 pm

Mesajde MihaiC » Vin Apr 25, 2008 1:15 am

Mda..am facut o abureala totala :p

Cod: Selectaţi tot

<?
function cool(){
$res = fopen('myfile.txt','r');
while(!feof($res)){
   $x = fgets($res, 1024);
   $y = explode('=',$x);
    eval('global $'.trim($y[0]).';');
    eval('$'.$x.';');
    }
fclose($res);
}
cool();
echo 'Ana are '. $fruct .' '. $culoare;
?>
Dev @ oblio.eu

Avatar utilizator
Quber
Senior Member
Mesaje: 874
Membru din: Mar Iun 27, 2006 8:33 pm
Localitate: localhost
Contact:

Mesajde Quber » Vin Apr 25, 2008 9:05 am

@MihaiC eara ai facut ce nu trebuea..!

Cod: Selectaţi tot

<?
function cool(){
$res = fopen('myfile.txt','r');
while(!feof($res)){
   $x = fgets($res, 1024);
   $y = explode('=',$x);
    eval('$GLOBALS['.trim($y[0]).'];');
    eval('$'.$x.';');
    }
fclose($res);
}
cool();
echo 'Ana are '. $fruct .' '. $culoare;
?>
A man who dares to waste one hour of time has not discovered the value of life.

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Vin Apr 25, 2008 9:32 am

Quber, stim deja ca nu stii ortografia limbii romane, nu trebuie sa ne demonstrezi de fiecare data, dar chiar ca nu stii php n-am observat pana acum. Hai sa analizam:
Consideram in fisier linia 'fruct = mere'

Cod: Selectaţi tot

  $x = fgets($res, 1024); // => $x = "fruct = mere"
  $y = explode('=', $x); // => $y = array([0] => 'fruct ', [1] => ' mere')
  eval('$GLOBALS['.trim($y[0]).'];'); // evaluam linia $GLOBALS['fruct']; - imi spui si mie ce face linia asta? In afara de faptul ca probabil iti tranteste un notice?


Bottom line, ombladdon - varianta lui mihaiC e corecta. Inainte de a asigna valori variabilelor $fruct si $culoare, trebue apelata directiva global pentru fiecare din ele. Astfel variabila cu care lucreaza php-ul este variabila cu acel nume din scopul global, altfel ar fi creat o variabila locala, valabila numai in interiorul functiei, cu acel nume.

carco
Senior Member
Mesaje: 2799
Membru din: Joi Mai 27, 2004 4:36 pm
Localitate: Bucuresti
Contact:

Mesajde carco » Sâm Apr 26, 2008 9:15 am

Varianta "naspa"

Cod: Selectaţi tot

function cool($filename) {

     $vals = array();
     
     $data = file($filename);
     if(!$data) {
         return false;
     }
     foreach($lines as $line) {
       $line = trim($line);
       if(!$line || $line{0} == '#' || !strpos($line,'=')) continue;
       list($var,$val) = explode('=',$line);
       $vals[trim($var)] = trim($val);
     }
     return $vals;
}
$vars = cool('myfile.txt');
if(!$vars) {
   //...No vars found
} else {
    echo 'Ana are ',$vars['fruct']....
   //sau, nerecomandat
   extract($vars);
    echo 'Ana are ',$fruct, ...
}
echo 'Ana are '. $fruct .' '. $culoare;



Varianta "normala": ai grija ca fisierul sa fie in "format ini" si folosesti

Cod: Selectaţi tot

$vars = parse_ini_file("myfile.txt");
//folosesti $vars['fruct'] sau, daca tii neaparat,
extract($vars);
//folosesti direct $fruct;


http://www.php.net/manual/en/function.p ... i-file.php
http://www.php.net/extract
Programator cu experienta in Magento/ZF, Typo3/Flow3, Symfony, B2B, CRM, ERP, SMB... vand betoniera

Ombladon1991
Average Member
Mesaje: 76
Membru din: Lun Feb 11, 2008 5:53 pm
Contact:

Mesajde Ombladon1991 » Lun Apr 28, 2008 9:52 pm

lol ms mult si paste fericit xD

ceea ce doream era ca in myfile.txt sa pot sa scriu cate vars vreau si doar sa pun
cool() inainte la $var1 . "bla bla bla" . $var 2;
un fel de config file sa fie myfile.txt xD

ms mult de exemple xD

Ombladon1991
Average Member
Mesaje: 76
Membru din: Lun Feb 11, 2008 5:53 pm
Contact:

Mesajde Ombladon1991 » Lun Apr 28, 2008 11:55 pm

scz ded stupiditatea mea dar am cv probleme :\

1 la mana am incercat tot ce ii deasupra si nu merg....am cv d genu in myfile.txt:

[code]
#============================================#
# #
# RiseToPower - site Config #
# #
#============================================#
#
# Site title/name
title = RiseToPower
#template configuration:
#template in use:
template = default

#extension in use:
extension = htm[code]
si codul din functie:
[code]
function config($type)
{
$res = fopen('config/' . stripslashes($type) . '.txt','r');
while(!feof($res)){
$x = fgets($res, 1024);
$y = explode('=',$x);
eval('global $'.trim($y[0]).';');
eval('$'.$x.';');
}
fclose($res);
}
[/code]
dar imi da o gramada de errori si nu proceseaza variabilele bolduite de mai sus :(

Ombladon1991
Average Member
Mesaje: 76
Membru din: Lun Feb 11, 2008 5:53 pm
Contact:

Mesajde Ombladon1991 » Mar Apr 29, 2008 12:56 pm

ok mi se pare mai simplu cu ini....si am incercat mai sus dar nu merge deloc :( ma ajuta cineva?????

Ombladon1991
Average Member
Mesaje: 76
Membru din: Lun Feb 11, 2008 5:53 pm
Contact:

Mesajde Ombladon1991 » Mar Apr 29, 2008 8:49 pm

<bump>

carco
Senior Member
Mesaje: 2799
Membru din: Joi Mai 27, 2004 4:36 pm
Localitate: Bucuresti
Contact:

Mesajde carco » Mie Apr 30, 2008 6:45 am

Banuiesc ca nu ai citit ce scrie la parse_ini_file (ai link mai sus)...

Cod: Selectaţi tot

;============================================
;
; RiseToPower - site Config
;
;============================================
;
;Site title/name
title = RiseToPower
;template configuration:
;template in use:
template = default

;extension in use:
extension = htm


[php]
<?php
$vars = parse_ini_file('mycode.txt');
if(!$vars) {
die('Wrong ini file');
}
//acum ai totul vars
//echo $vars['title']...

extract($vars);
echo 'Title: ',$title,', Template: ',$template,', extension: ',$extension;
?>
[/php]
Programator cu experienta in Magento/ZF, Typo3/Flow3, Symfony, B2B, CRM, ERP, SMB... vand betoniera


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 4 vizitatori