Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Proszę o wsparcie ):
Forum PHP.pl > Forum > PHP
Vaticinator
Już nie mam sił, :cry: kombinowałem chyba na wszystkie sposoby i nic... Znacie jakąś funkcję, która przypisuje text zawarty w konkretnym pliku *.inc do zmiennej. Np:
Mam następujące pliki:

1.inc:
Kod
1000+2000+250


1.php:
Kod
<?php

$zmienna=(i tutaj zawartość pliku 1.inc);

print("podsumopwując liczby w pliku otrzymujemy: $zmienna");

?>


Pewnie zaraz ktoś by powiedział "To lepiej odrazu napisz $zmienna=1000+2000+250", ale mi właśnie zależy na tym, żeby było tak jak napisałem, bo mam zamiar dodawać liczby do pliku z poziomu strony poprzez pewien formularz, który już mam zrobiony.
Jeśli ktoś zrozumiał o co mi chodzi (albo przynajmniej wydaje mu się, że zrozumiał), to PROSZĘ o udzielenie POMOCY!
rzseattle
Odczytaj jako string rozbij explodem i pododawaj wartosci tablicy (najprostrze rozwiazanie jakie mi przychodzi do glowki)
zombie
a te zmienne to maja byc tylko sumy wyrazen?
DeyV
Może być też tak
Kod
<?

$t1="1+2+3";

eval('$t='.$t1.';');

echo $t;

?>

Choc uważam, że lepiej by jednak było dodawć te zmienne przed zapisem do pliku. Ale cóż...
Vaticinator
Cytat
Odczytaj jako string rozbij explodem i pododawaj wartosci tablicy (najprostrze rozwiazanie jakie mi przychodzi do glowki)

A dokładniej, jak to się robi? :?

Cytat
a te zmienne to maja byc tylko sumy wyrazen?

No, w sumie tak. Ale sumy wyrażeń zawartych w pliku.

Sorki, że dręcze was takimi pytaniami, ale w końcu nauczę się tego php i będę mógł pomagać innym takim jak ja oszczędzając wam czasu :wink:
zombie
Kod
$zmienna = file("plik.inc");

$liczba = explode("+", $zmienna[0]);

$suma=array_sum($liczba);
Vaticinator
biggrin.gif biggrin.gif biggrin.gif DZIAŁA!!! biggrin.gif biggrin.gif biggrin.gif

Dziękuje Wam szczerze!
Jestem w niebo wzięty tongue.gif
Vaticinator
:?

Właśnie się okazało, że do tego wszystkiego, żeby wszystko było pięknie, potrzebuję jeszcze, żeby liczby z "-" na przedzie były odejmowane. Tzn: Jeśli będę miał w includzie: 100+25-50+40-10
To w rezultanie w zmiennej "$suma" chciałbym otrzymać wartość 105

Pomożecie? :cry:
Jabol
ale to już było... Jest taka magiczna funkcja eval(); i ta funkcja wykonuje kod php który znajduje się w stringu!!! Bardzo niebezpieczne jeżeli wykorzystujesz do tego wartośći wprowadzane przez użytkownika, ale to wygląda tak:
Kod
$code='$var=';

$code.=fread(fopen($file), filesize($file));

$code.=';';

eval($code)

print $var

Pamiętaj jednak, że jeżeli wykorzystujesz do tego wartości wykorzystywane przez użytkownika to musisz zrobić kontrolę typów danych (np. wyrażenia rególarne), bo mógłbym np. w polu wartości wpisać
Kod
200; fopen('index.php', 'w')
i już byś miał po index.php!!! Także bardzo uważaj
Vaticinator
Wiem, wiem, ciężki ze mnie przypadek. Akurat wartości do includa ja będę dodawał. Ale ja kompletnie nie rozumiem tej funkcji sad.gif
Mógłby ktoś napisać gotowca przy urzyciu tej funkci który wyświetli obliczoną wartość z pliku liczby.inc? rolleyes.gif
Jabol
skoro sam sobie wprowadzasz ilości to czemu se nie wpiszesz po prostu tak
Kod
$var=5-8+9-1+4214;//!!!

print $var;//przecież to takie oczywiste!!!

//a jeżeli musisz mieć różne wartości np. z geta

switch ($_GET['cos']){

case 1:

$var=55+234-4532;

print $var;

break;

case 2:

$var=553-43+52;

print $var;

break;

default:

$var='Przecież to takie oczywiste, że chce napisać'.settype(3+5-3, 'string');

print $var;

break;

}

Jeżeli wpisujesz to sam to możesz wpiasć to wszystko na czysto do kodu i nie rozumiem w takim razie po co piszesz to w sposób
Kod
cos+cos_innego-cos_jeszcze_innego;
zamiast
Kod
cos;
Vaticinator
Dzięki za pomoc. Jakoś wkońcu poradziłem sobie kożystając z pierwszej rady, ale i tak dzięki :wink:
evo
Cytat
Kod
$code='$var=';

$code.=fread(fopen($file), filesize($file));

$code.=';';

eval($code)

print $var


$code.=fread(fopen($file), filesize($file));

nie uczcie sie takiego zapisywania bo pozostawiacie po sobie w ten sposob otwarte strumienie do plikow 8)
zombie
Cytat
Mógłby ktoś napisać gotowca przy urzyciu tej funkci który wyświetli obliczoną wartość z pliku liczby.inc? rolleyes.gif

To już przesada stary. Dostałeś gotowca. Trzeba użyć eval(); Albo jeśli za każdym razem minus masz w tym samym miejscu, to trzeba tylko troche pogłówkować i zrobisz to przy użyciu funkcji, które już znasz.
Jabol
Cytat
$code.=fread(fopen($file), filesize($file));

nie uczcie sie takiego zapisywania bo pozostawiacie po sobie w ten sposob otwarte strumienie do plikow 8)

można
Kod
$code.=readfile($file);
evo
readfile() wywala zawartosc na ekran
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.