| Autor | Zpráva | ||
|---|---|---|---|
| marian34 Profil |
Zdravím,takto zapisujem formulár do súboru:
<?php
#zapis
$f = fopen("/home/pi/test.user", "a");
fwrite($f,"\n");
fwrite($f, '[account]');
fwrite($f,"\n");
fwrite($f, 'user = '.$_POST['meno']);
fwrite($f,"\n");
fwrite($f, 'pwd = '.$_POST['heslo']);
fwrite($f,"\n");
fwrite($f, 'hostname = '.$_SERVER['REMOTE_ADDR']);
fwrite($f,"\n");
fclose($soubor);
?> |
||
| peta Profil |
<?php
$pos = 0;
$pos = strpos( $str, 'hostname = '.$_SERVER['REMOTE_ADDR'], $pos);
if ($pos !== false) {}
else ($pos = strpos ...) |
||
| marian34 Profil |
??
|
||
| marian34 Profil |
Takto to celkom funguje,no chcelo by to ešte test na počet zhôd...
<?php
$file_content = file_get_contents('test.user');
$findme = $_SERVER['REMOTE_ADDR'];
$pos = strpos($file_content, $findme);
if ($pos !== false) {
echo "Blok IP.";
} else {
header( 'Location: /kontakt/index.html' );
exit();
}
?> |
||
| marian34 Profil |
#5 · Zasláno: 12. 2. 2014, 20:19:17
Páni,ako sa dá v tejto súvislosti získať počet testovaného reťazca?Tak ako to mám,skončí na prvej zhode.
Ešte by som potreboval nasmerovať ako dosiahnúť toho,že ak budem testovať reťazec pr. "jakpsat",aby nenašlo zhodu v reťazci "jakpsatweb". |
||
| peta Profil |
#6 · Zasláno: 13. 2. 2014, 10:05:43
marian34:
Proc tam myslis mam slovo hostname? :) Muzes hledat konec radku a pak dopocitat delku. Muzes pouzit preg_match s podminkou konce radku 'jakpsat$'. viz Kategorie PHP, tam je takovych dotazu more. |
||
| marian34 Profil |
peta:
Jj,mám v tom guláš,ale je to príliš rozsiahle,aby som to začal študovať. Teda ako zapísať ten preg_match(skúšam,ale nijako mi to nefunguje): <?php
$file = file_get_contents('test.user');
$findus = $_POST['meno'];
if (preg_match("/\b$findus\b/", $file))
{
echo "nasla sa zhoda";
}
?> edit:takto je to ok,ale už mi z tých lomitiek .ebe. |
||
| peta Profil |
Tak zustan u strpos. Cele to explodujes podle \n, pak pres strpos najdes nebo nejades shodu. Pak zjistis, jestli je za $pos dalsi znak nebo treba, zda je to konec retezce (strlen($str)==$pos+strlen($hledane)). Pripadne, jestli vis naprosto jiste, ze za tim mas alespon mezeru, tak muzes hledat retezec
'hostname = '.$prom.' '
Mimochodem, jsou tam dalsi funkce, jako treba preg_match_all, ktera by te mozna zajimava vic. |
||
| janbarasek Profil |
#9 · Zasláno: 13. 2. 2014, 17:04:37
Ještě mě tak napadá, jak snadno hledat duplicity:
Stačí celý seznam setřídit nějakým rychlým algoritmem, následně projít cyklem pole a kontrolovat vždy sousední 2 indexy, jestli se shodují. Pokud ano, tak je to duplicita. Podobně jsem řešil hledání počtu stejných slov v textu. |
||
| pcmanik Profil |
// offtopic ale nedalo mi nezareagovať
janbarasek: A nieje jednoduchšie použit toto: array_count_values(str_word_count($veta, 1));
Vratí to pole s počtom koľkokrát sa dané slovo opakuje. |
||
| janbarasek Profil |
#11 · Zasláno: 13. 2. 2014, 18:42:11
pcmanik:
Nevím, jsem původně programátor v jazyce C, kde toto není, takže jsem zvyklý na všechno vymýšlet svojí funkci a vědět, jak to funguje. Každopádně setříděný seznam má hlavní výhodu v tom, že se nemusí procházet celé pole, ale jen jeho část. |
||
|
Časová prodleva: 12 let
|
|||
0