Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Kalkulator podsieci oraz skrypt do przeliczania jednostak danych i czasu, [PHP]Kalkulator podsieci oraz skrypt do przeliczania jednostek
akurczyk
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


Witam,
Napisałem na konkurs 2 kalkulatory. Pierwszy z nich służy do obliczania adresu sieciowego oraz rozgłoszeniowego hosta (we wszystkich możliwych notacjach) na podstawie adresu IP (również w dowolnej notacji) oraz maski podsieci.

Pierwszy skrypt:
http://kklodzka.pdg.pl/subnet_calculkator.php
http://kklodzka.pdg.pl/subnet_calculkator.txt (kod)

Proszę o jakieś sugestie i uwagi. Może da się to jakoś zoptymalizować lub uprościć.

Drugi skrypt służy do przeliczania danych pomiędzy jednostkami danych i czasu, np. 100Mb/s na GB/10min. Jest mi to potrzebne do popularnego zadania z kurierem niosącym pendrivea między oddziałami firmy. W takim zadaniu trzeba zazwyczaj określić czy kureir jest szybszy od sieci Fast Ethernet (100Mb/s).

Pierwsza wersja skryptu:
http://kklodzka.pdg.pl/unit_calculator.php
http://kklodzka.pdg.pl/unit_calculator.txt (kod)

Wersja z << i >>:
http://kklodzka.pdg.pl/unit_calculator2.php
http://kklodzka.pdg.pl/unit_calculator2.txt (kod)

Druga wersja skryptu niestety nie działa, najprawdopodobniej dlatego że gdy zamieniam TB na b muszę zrobić << lub >> o więcej niż 32. Proszę o pomoc w rozwiązaniu tego problemu oraz o sugestie jak jeszcze mogę usprawnić ten skrypt.


--------------------
Pozdrawiam
Aleksander Kurczyk
Porady dla webmasterów
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat
Proszę o jakieś sugestie i uwagi. Może da się to jakoś zoptymalizować lub uprościć.

http://forum.php.pl/index.php?showtopic=13...mp;#entry685885

Kod
//From TB
if($_POST["input_data_unit"] == "TB" && $_POST["output_data_unit"] == "TB") $result = $_POST["input_data_value"];
elseif($_POST["input_data_unit"] == "TB" && $_POST["output_data_unit"] == "Tb") $result = $_POST["input_data_value"]*8;
elseif($_POST["input_data_unit"] == "TB" && $_POST["output_data_unit"] == "GB") $result = $_POST["input_data_value"]*1024;
elseif($_POST["input_data_unit"] == "TB" && $_POST["output_data_unit"] == "Gb") $result = $_POST["input_data_value"]*1024*8;
elseif($_POST["input_data_unit"] == "TB" && $_POST["output_data_unit"] == "MB") $result = $_POST["input_data_value"]*1024*1024;
elseif($_POST["input_data_unit"] == "TB" && $_POST["output_data_unit"] == "Mb") $result = $_POST["input_data_value"]*1024*1024*8;
elseif($_POST["input_data_unit"] == "TB" && $_POST["output_data_unit"] == "kB") $result = $_POST["input_data_value"]*1024*1024*1024;
elseif($_POST["input_data_unit"] == "TB" && $_POST["output_data_unit"] == "kb") $result = $_POST["input_data_value"]*1024*1024*1024*8;
elseif($_POST["input_data_unit"] == "TB" && $_POST["output_data_unit"] == "B") $result = $_POST["input_data_value"]*1024*1024*1024*1024;
elseif($_POST["input_data_unit"] == "TB" && $_POST["output_data_unit"] == "b") $result = $_POST["input_data_value"]*1024*1024*1024*1024*8;
... i tak dla wszystkich jednostek czyli 10 * 10 = 100 linii na samo przeliczenie

Myślałem, że padne...



--------------------
Go to the top of the page
+Quote Post
Wicepsik
post
Post #3





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Tylko nie mów że wygrałeś haha.gif
Zbyt dużo zbędnego kodu. Nie myślałeś by go skrócić?


--------------------
Go to the top of the page
+Quote Post
akurczyk
post
Post #4





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


LOL Myślałem, ale nie wiem jak i właśnie dlatego tutaj piszę. Macie jakieś pomysły jak można usprawnić te kody?questionmark.gif Jak mogę zrobić << lub >> o więcej niż 32?questionmark.gif
P.S. Nie chcę korzystać z żadnych dodatkowych klas, bo wiem że da się to zrobić w paru linijkach, gdzieś już taki kod widziałem, tylko wtedy nie był mi on potrzebny, a teraz nie mogę go znaleźć.


--------------------
Pozdrawiam
Aleksander Kurczyk
Porady dla webmasterów
Go to the top of the page
+Quote Post
wookieb
post
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A klasa nie może się składać z paru linijek? Przerób sobie na funkcje i nie będzie to klasą... Dałem ci link jak można to w łatwy nie inwazyjny sposób rozwiązać.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 22:35