PDA

Arată versiune īntreagă : Verificare Numere Telefon / Afisare Operator si Judet



Stresant
19.04.2009, 15:52
Bun , urmatoarea clasa scrisa in PHP , face o simpla chestie , accepta un numar de telefon fie prin POST fie pasat direct ca parametru al functiei si returneaza originea lui .
Mai jos urmeaza clasa :



<?php
class telefonie{
/**
*Clasa pentru validarea si aflarea diversilor
*operatori de telefonie mobile si fixa aflati
*pe piata romaneasca in acest moment .
*Clasa a fost scrisa la data de 19-Apr-2009 .
*Autor : Stresant
*Contact : admin [at] knd [dot] ro
**/
function telefonie(){
/**
*Prefixurile Romtelecom Pentru Toate Judetele
**/
$this->romtelecom_fix = array(

'Alba' => '0258' ,
'Arad' => '0257' ,
'Arges' => '0248' ,
'Bacau' => '0234' ,
'Bihor' => '0259' ,
'Bistrita-Nasaud'=> '0263' ,
'Botosani' => '0231' ,
'Brasov' => '0268' ,
'Braila' => '0239' ,
'Bucuresti' => '021' ,
'Buzau' => '0238' ,
'Caras-Severin' => '0255' ,
'Calarasi' => '0242' ,
'Cluj' => '0264' ,
'Constanta' => '0241' ,
'Covasna' => '0267' ,
'Dambovita' => '0245' ,
'Dolj' => '0251' ,
'Galati' => '0236' ,
'Giurgiu' => '0246' ,
'Gorj' => '0253' ,
'Harghita' => '0266' ,
'Hunedoara' => '0254' ,
'Ialomita' => '0243' ,
'Iasi' => '0232' ,
'Ilfov' => '021' ,
'Maramures' => '0262' ,
'Mehedinti' => '0252' ,
'Mures' => '0265' ,
'Neamt' => '0233' ,
'Olt' => '0249' ,
'Prahova' => '0244' ,
'Satu Mare' => '0261' ,
'Salaj' => '0260' ,
'Sibiu' => '0269' ,
'Suceava' => '0230' ,
'Teleorman' => '0247' ,
'Timis' => '0256' ,
'Vaslui' => '0235' ,
'Valcea' => '0250' ,
'Vrancea' => '0237' ,
);
/**
*Prefixurile pentru restul retelelor de telefonie fix
*din tara . Deoarece RDS detine majoritatea , vom presupune
*ca RDS va fii operatorul de telefonie FIXA caruia ii
*corespund aceste prefixuri .
**/
$this->rds_fix = array(

'Alba' => '0358' ,
'Arad' => '0357' ,
'Arges' => '0348' ,
'Bacau' => '0334' ,
'Bihor' => '0359' ,
'Bistrita-Nasaud'=> '0363' ,
'Botosani' => '0331' ,
'Brasov' => '0368' ,
'Braila' => '0339' ,
'Bucuresti' => '031' ,
'Buzau' => '0338' ,
'Caras-Severin' => '0355' ,
'Calarasi' => '0342' ,
'Cluj' => '0364' ,
'Constanta' => '0341' ,
'Covasna' => '0367' ,
'Dambovita' => '0345' ,
'Dolj' => '0351' ,
'Galati' => '0336' ,
'Giurgiu' => '0346' ,
'Gorj' => '0353' ,
'Harghita' => '0366' ,
'Hunedoara' => '0354' ,
'Ialomita' => '0343' ,
'Iasi' => '0332' ,
'Ilfov' => '031' ,
'Maramures' => '0362' ,
'Mehedinti' => '0352' ,
'Mures' => '0365' ,
'Neamt' => '0333' ,
'Olt' => '0349' ,
'Prahova' => '0344' ,
'Satu Mare' => '0361' ,
'Salaj' => '0360' ,
'Sibiu' => '0369' ,
'Suceava' => '0330' ,
'Teleorman' => '0347' ,
'Timis' => '0356' ,
'Vaslui' => '0335' ,
'Valcea' => '0350' ,
'Vrancea' => '0337' ,
);
/**
*Prefix Romtelecom pentru telefonia Mobila .
**/
$this->romtelecom_mobil = array('0711');

/**
*Prefixuri Vodafone.
**/
$this->vodafone = array( '0720' , '0721' , '0722' , '0723' , '0724' ,
'0725' , '0726' , '0727' , '0728' , '0729' ,
'0730' , '0731' , '0732' , '0733' , '0734'
);

/**
*Prefixuri Orange.
**/
$this->orange = array( '0740' , '0741' , '0742' , '0743' , '0744' ,
'0745' , '0746' , '0747' , '0748' , '0749' ,
'0750' , '0751' , '0752' , '0753' , '0754' ,
'0755' , '0756'
);

/**
*Prefixuri Cosmote.
**/
$this->cosmote = array( '0760' , '0761' , '0762' , '0763' , '0764' ,
'0765' , '0766' , '0767'
);

/**
*Prefixuri RDS Mobil.
**/
$this->rds_mobil= array( '0770' , '0771' );

/**
*Prefixuri Zapp.
**/
$this->zapp = array( '0788' );

}

function validare_operator($numar_telefon,$judet=FALSE)
{
if( !is_numeric($numar_telefon) )
{
return 'Formatul numarului este invalid' ;
}
elseif( strlen($numar_telefon) != 10 AND strlen($numar_telefon) != 9 )
{
return 'Lungimea numarului este invalida' ;
}
else
{
$numar = substr($numar_telefon,strlen($numar_telefon) - 6 , 6 );
$prefix= str_replace($numar,'',$numar_telefon);
if( in_array($prefix , $this->romtelecom_fix) )
{
if( $judet == TRUE )
{
foreach( $this->romtelecom_fix AS $judet=>$jud_prefix )
{
if( $prefix == $jud_prefix )
{
return 'Romtelecom - ' . $judet ;
}
}
}
else
{
return 'Romtelecom';
}
}
elseif( in_array( $prefix , $this->romtelecom_mobil ) )
{
return 'Romtelecom Mobil';
}
elseif( in_array( $prefix , $this->rds_fix ) )
{
if( $judet == TRUE )
{
foreach( $this->rds_fix AS $judet=>$jud_prefix )
{
if( $prefix == $jud_prefix )
{
return 'RDS Fix - ' . $judet ;
}
}
}
else
{
return 'Romtelecom';
}
}
elseif( in_array( $prefix , $this->rds_mobil) )
{
return 'RDS Mobil';
}
elseif( in_array( $prefix , $this->vodafone ) )
{
return 'Vodafone';
}
elseif( in_array( $prefix , $this->orange ) )
{
return 'Orange';
}
elseif( in_array( $prefix , $this->cosmote ) )
{
return 'Cosmote';
}
elseif( in_array( $prefix , $this->zapp ) )
{
return 'Zapp';
}
else
{
return 'Operator Necunoscut...';
}
}
}

/**
*Class Ends Here
**/
}
?>


Cum se foloseste :



<?php
$nr = isset($_POST['nr']) ? $_POST['nr']:NULL ;
if( empty($nr) )
{
echo '<form action="" method="POST" name="myform>">
<input type="text" name="nr" maxlength="10" /><input type="submit" value="Verifica" />
</form>';
}
else
{
$obj = new telefonie();
echo $obj->validare_operator($nr);
echo ' <a href="" style="text-decoration:none">[ Back ] </a>';
}
?>


In forma de mai sus , in functie de operator va afisa :
Daca numarul este de Cosmote : Cosmote
Daca este de Romtelecom : Romtelecom
Daca este de Romtelecom Mobil : Romtelecom Mobil
Daca este de RDS Mobil : RDS Mobil
Daca este de Vodafone : Vodafone
Daca este de Orange : Orange
[ETC]
In orice caz , daca ca al doilea parametru al functiei este trecut TRUE atunci in cazul telefoniei fixe RDS si romtelecom va afisa si judetul


$nr = isset($_POST['nr']) ? $_POST['nr']:NULL ;
if( empty($nr) )
{
echo '<form action="" method="POST" name="myform>">
<input type="text" name="nr" maxlength="10" /><input type="submit" value="Verifica" />
</form>';
}
else
{
$obj = new telefonie();
echo $obj->validare_operator($nr , TRUE );
echo ' <a href="" style="text-decoration:none">[ Back ] </a>';
}
?>

Exemplu de mai sus va afisa :
Romtelecom - Constanta Sau RDS Constanta

Un alt exemplu de folosire este cel direct :


$obj = new telefonie();
$nr = '0745111222';
echo $obj->validare_operator($nr , TRUE );

Va returna simplu : Orange
Iar daca numarul este de Romtelecom :


$obj = new telefonie();
$nr = '0241222111';
echo $obj->validare_operator($nr , TRUE);

Va afisa : Romtelecom - Constanta

Cred ca ati inteles ideea generala , clasa poate fii folosita la inregistrari pe forum-uri sau pe situri sau unde credeti ca este necesara .

Cosmin
19.04.2009, 15:58
Super tare . Chiar te pricepi ... mai ales daca este facut de tine

Stresant
19.04.2009, 16:15
Mersi , este facut de mine stai linistit ;)

cRs04
19.04.2009, 20:08
foarte tare,bravo,se pare ca din ce in ce mai multi incearca sa ajute comunitatea.

xroby17
19.04.2009, 23:46
foarte fain ........ bravo omule........... ;)

OFF: Da-mi un PM ca am nevoie de un pic de ajutor la niste functii php :D:D ..........

Stresant
20.04.2009, 00:30
Daca ai nevoie de ajutor , deschide un topic , posteaza problema si poate rezolvam , asha in caz ca cineva se va lovi de aceiasi problema , va avea de unde sa invete :)

djkipry
20.04.2009, 09:46
Super TARE....Jur:) trebuie sa incerc sa vad *** chiar merge:)

Dany.
20.04.2009, 09:47
ai un demo sau ceva ?:)

fulgerul101
20.04.2009, 09:53
Ce il laudati atat? Nu e mare lucru..

zmeutz
20.04.2009, 10:51
singura problema e ca nu iti va da un rezultat 100% sigur, deoarece eu cu numarul de orange pe care il am ma pot transfera la un alt operator, ex. cosmote dar numarul imi va ramane acelasi.
asa ca eu daca imi voi verifica numarul el imi va zice orange, iar eu sunt pe cosmote :)


Ce il laudati atat? Nu e mare lucru..

este un lucru mare, este o munca proprie, unica si FREE!
in caz ca te pricepi si tu la asa ceva trebuia sa o faci inaintea lui, sunt multi care cunosc programare dar putin care au idei in a o practica
sunt lucruri simple dar 'marete' si de folos multora ;)

fulgerul101
20.04.2009, 10:55
zmeutz iti spun eu ca nu sunt programator dar stiu sa fac asa ceva. Este adevarat ca am avut ideea primul, mai multi pot face un script ca wordpress dar nu au avut primii ideea..

Stresant
20.04.2009, 13:07
De ce va certati ca nu va inteleg :-??
Este ceva relativ ushor , un script care se bazeaza pe prefixele alocate operatorilor .
Ar trebui sa va bucurati de clasa si sa o folositi daca aveti nevoie ;)

P.S: Fulgerul101 , nu cred ca este cazul sa-mi pui la indoiala cunostintele php :) .
Cand am pus acest script nu l-am pus sa ma dau mare , l-am pus in speranta ca cineva il va gasi util :)

Btw , intreba cineva mai devreme de un demo , il poate gasi aici http://www.knd.ro/tel

fulgerul101
20.04.2009, 16:05
Stresant ce ti s-a parut ofensiv in post-ul meu sau al lui zmeutz?
Nu ti-am pus la indoiala cunostintele in php, sunt sigur ca e foarte putin pe langa ce poti, pentru ca altfel nu puneai free..

Cosmin
20.04.2009, 16:15
Fulgere ... nu te inteleg .. dupa ce pe invatam.net ziceai de cwr ca e o comunitate de c***t ... si ca "comunitatea cwr" este o cumunitate in care sunt numai copii cu site warez .. de ce
mai faci parte din comunitate ???

Sa nu intelegi gresit ... nu te gonesc chiar imi pare bine ca intri ....dar daca era sa fac eu o asemenea afirmatie despre un site (o comunitate) nu cred ca mai intram pe acolo .. cel putin o vreme

ketaddict
20.04.2009, 18:31
Foarte frumos scriptul :D Bafta in continuare! :)

ocealan
22.04.2009, 13:28
foarte ok scriptul. am vazut ca recunoaste toate retelele de telefonie.