Re: ako na @ zoznam?

From: Martin Svarovsky <martin.svarovsky (zavinac)>
Date: 20. 04. 2006, 17:17 CEST
MilanK napsal(a):
>     Nemate nejaky navrh, ako urobit nejake "hladanie"? Stranka je v 
> php
> ale BEZ databazy - nemam a nechcem, nepoznam a casu niet, neviem
> poriadne ani to php :-) .
>     Kedze sa u nas takmer vsetky adresy robia z celeho mena sposobom
> priezvisko.meno@firma.sk , tak ma napadlo nieco, o com ani neviem ci
> je realizovatelne - ten kto hlada, zapise cast predpokladanej adresy 
> do
> nejakeho policka <priezvisko.meno> + za polickom pre nazornost by bolo
> @firma.sk a kliknutim na tlacitko by sa zo zoznamu v textovom subore
> overilo ci taka adresa existuje. Je to mozne?
Porad nikdo? Oni snad vsichni PHPckari prihlaseni v konvi pracuji nebo co.
Mam tu hodne jednoduchej koncept:
- pokud se ve formulari odesle text dlouhy alespon 3 znaky ($min_delka), nacte se textovy soubor ('adresy.txt') a v nem se vyhleda zadany retezec. Pokud se najde, vypise vyhledane jmeno a adresu.
- textovy soubor ma radky ve tvaru "Cele Jmeno;emailadresa", oddelovac sloupcu je tedy strednik ($delimiter)
- prohledava se pouze "Cele Jmeno" - prohledavani primo e-mailu se mi moc nezdalo
- textovy soubor s adresami by bylo vhodne umistit nekam mimo adresare web serveru ale tak aby na nej dosahlo PHPcko, muze vzniknout exportem z XLS souboru.
- pro vetsi komfort by bylo dobre odstranovat z obou retezcu pred porovnavanim diakritiku (hledej treba knihovnu "autoczech")
- pozor na pouziti metody GET pro odeslani formulare, lepsi by bylo POST (pak vymenit $_GET za $_POST)

-----
<?php
$min_delka=3;
$delimiter=';';
if (strlen(trim($_GET['param'])) >=$min_delka) {
	$param=trim($_GET['param']);
	$arr = file('./adresy.txt');
	$adresy_arr=Array();
	$pocet=0;
	foreach($arr AS $radek) {
		list($jmeno,$email) = explode($delimiter,trim($radek));
		if(stristr($jmeno,$param)!==false) {
			$adresy_arr[$pocet]['jmeno'] = $jmeno;
			$adresy_arr[$pocet]['email'] = $email;
			$pocet++;
		}
	}
	if($pocet>0) foreach ($adresy_arr AS $radek) echo "{$radek['jmeno']} : <a href=\"mailto:{$radek['email']}\">{$radek['email']}</a><br />\n";
}
?>
-----
<form method="GET" action="adresy.php">
<label for="param">Zadejte min. 3 pismena ze jmena:</label><input name="param" id="param" />
<input type="submit" value="Odeslat" />
</form>
-----

-- 
S pozdravem
Martin Svarovsky
Received on Thu, 20 Apr 2006 17:17:37 +0200

This archive was generated by hypermail 2.1.8 : 20. 04. 2006, 17:18 CEST