Switch nefunguje – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Switch nefunguje – PHP – Fórum – Programujte.comSwitch nefunguje – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Marek Štafl0
Stálý člen
17. 3. 2007   #1
-
0
-

Ahojky,
nefunguje mi tento kód:

$slovo = "kočka";

$slovo1 = chunk_split($slovo, 1, ";");
$slovo1 = explode(";", $slovo);
$regular = "";
foreach ($slovo1 as $p) {
switch ($p) {
case "a": $regular .= "([aá]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "b": $regular .= "({1}[\*\-_ \.]*)"; $test .= $p;
break;
case "c": $regular .= "([cč]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "d": $regular .= "([dď]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "e": $regular .= "([eéě]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "f": $regular .= "([f]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "g": $regular .= "([g]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "h": $regular .= "([h]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "i": $regular .= "([ií!]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "j": $regular .= "([j]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "k": $regular .= "([k]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "l": $regular .= "([l]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "m": $regular .= "([m]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "n": $regular .= "([nň]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "o": $regular .= "([oó]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "p": $regular .= "([p]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "q": $regular .= "([q]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "r": $regular .= "([rř]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "s": $regular .= "([sš]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "t": $regular .= "([tť]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "u": $regular .= "([uúů]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "v": $regular .= "([vw]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "w": $regular .= "([vw]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "x": $regular .= "([x]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "y": $regular .= "([yý]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "z": $regular .= "([zž]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "á": $regular .= "([aá]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "č": $regular .= "([cč]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "ď": $regular .= "([dď]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "é": $regular .= "([eéě]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "ě": $regular .= "([eéě]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "í": $regular .= "([ií!]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "ň": $regular .= "([nň]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "ó": $regular .= "([oó]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "ř": $regular .= "([rř]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "š": $regular .= "([sš]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "ť": $regular .= "([tť]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "ú": $regular .= "([uúů]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "ů": $regular .= "([uúů]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "ý": $regular .= "([yý]{1}[\*\-_ \.]*)"; $test .= $p;
break;
case "ž": $regular .= "([zž]{1}[\*\-_ \.]*)"; $test .= $p;
break;
}
$tst .= $p;
}
$zprava = EregI_Replace("$regular", "\\1***\\$k", $zprava);

V proměnné $slovo je teď třeba ta "kočka", toto slovo se rozdělí na jednotlivé znaky a uloží do pole $slovo1 a toto pole se projde pomocí foreach. Ten switch by měl podle písmena uložit určitý text do proměnné $regular, to pak vložit jako regulární výraz do EregI_Replace().
Problém je ten, že mi to píše:
Warning: eregi_replace(): REG_EMPTY in c:\appserv\www\mocaci.cl\mini-chat\chat.php on line 195
tak jsem zkoušel vypsat proměnnou $regular - nevypsalo nic (prázdný řetězec), stejně tak proměnná $test.
Pole je v pořádku - "joint($slovo1);" vypíše "kočka", "$slovo1[1]" vypíše "o". Foreach taky probíhá v pohodě, protože $tst vypíše "kočka".
Takže nechodí jen ten switch, ale já za žádnou cenu nemůžu přijít na to, proč! Nenašel jsem žádnou chybu!
Můžete mi někdo poradit, prosím!
Děkuji!

Nahlásit jako SPAM
IP: ...–
Reklama
Reklama
Marek Štafl0
Stálý člen
18. 3. 2007   #2
-
0
-

Tady nejdou mazat příspěvky? Já už tu chybu našel, tak aby to tady nestrašilo - jsem slepej jak patrona!

Nahlásit jako SPAM
IP: ...–
Jan Škrášek
~ Redaktor
+1
Boss
19. 3. 2007   #3
-
0
-

radši popiš svoji chybu at se ji muzou vyvarovat ostatni

Nahlásit jako SPAM
IP: ...–
http://jan.skrasek.com@hrachcz – webdeveloper
Marek Štafl0
Stálý člen
20. 3. 2007   #4
-
0
-

Ale to byla chyba v tom, že jsem něco přehlédl:

$slovo = "kočka";

$slovo1 = chunk_split($slovo, 1, ";");
$slovo1 = explode(";", $slovo);

Slovo kočka převedu na k;o;č;k;a pomocí chunk_split() a uložím do proměnné $slovo1 a pak bych měl slovo rozdělit na jednotlivá písmena pomocí explode(";", $slovo1), jenže já si spletl proměnné (spíš něco přehlédl) a pokoušel se rozdělovat na jednotlivá písmena obsah proměnné $slovo namísto $slovo1, což je blbost, když
$slovo = "kočka";

a
$slovo1 = "k;o;č;k;a";

Nahlásit jako SPAM
IP: ...–
Ondrej Juríček
~ Moderátor
0
Stálý člen
20. 3. 2007   #5
-
0
-

hmm, a co tak namiesto chunk_split a explode pouzit funkciu str_split?!? ;)

$slovo1 = str_split('kočka');

a ten mega kod, ktory potom nasleduje nechcem ani vediet jeho prakticke vyuzitie :D (ale asi ma opodstatnenie)

Nahlásit jako SPAM
IP: ...–
Marek Štafl0
Stálý člen
20. 3. 2007   #6
-
0
-

hmm, a co tak namiesto chunk_split a explode pouzit funkciu str_split?!? ;)


Protože str_split() (alespoň podle manuálu) funguje až v PHP5 - mám 4.

a ten mega kod, ktory potom nasleduje nechcem ani vediet jeho prakticke vyuzitie :D (ale asi ma opodstatnenie)


Filtr sprostých slov ve fóru - nic jiného mě nenapadlo :) Samozřejmě ve finále to vypadá trochu jinak.

Nahlásit jako SPAM
IP: ...–
olgo0
Věrný člen
21. 3. 2007   #7
-
0
-

Filtr sprostých slov ve fóru - nic jiného mě nenapadlo :) Samozřejmě ve finále to vypadá trochu jinak.


nebolo by lepsie (dat niekomu) vytvorit zoznam sprostych slov, nahrat ho do pola, a pomocov str_replace() ich nahradzovat?

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Marek Štafl0
Stálý člen
21. 3. 2007   #8
-
0
-

Nevím, asi ne. Nejprve jsem to tak měl, ale tohle počítá i se všemi možnými variantami slov (jak jsem psal, ve finále to vypadá a bude vypadat jinak). Myslím tím: dejme tomu, že kočka je sprosté slovo - tak odfiltruje i k*o*č*k*a a podobné věci. Ještě tam bude seznam výjimek jako třeba "sekunda" a tak.

Nahlásit jako SPAM
IP: ...–
olgo0
Věrný člen
21. 3. 2007   #9
-
0
-

To MareX: tak ti drzim palce. aj tak si mislim ze zoznam vinimiek nema sancu byt nikdy kompletny, rovnako ako si uzivatelia vzdy najdu ako tam sproste slova vlozit. kazdopadne ta nechcem odradzat ale ostal by som asi u toho prveho sposobu (str_replace)

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Marek Štafl0
Stálý člen
22. 3. 2007   #10
-
0
-

Já samozřejmě vím, že to nikdy nemůžu dovést k dokonalosti - lidi jsou hrozně vynalézaví a vždycky si najdou způsob, jak tam ta slova dostat, ale aspoň jim to maximálně ztížím :) Ono to třeba někoho po pátém neúspěšném pokusu přestane bavit.
Já to ze začátku měl přes str_replace(), tohle vzniklo vlastně tím, že Ti, co pro ně ty stránky dělám, si tam ze mě začali dělat srandu tím, že tam začali psát slova s jednotlivými písmenky oddělenými hvězdičkou a místo V psali W a místo I vykřičník, tak jsem jim řekl "Počkejte, já Vám dám!" a bylo :))

Nahlásit jako SPAM
IP: ...–
olgo0
Věrný člen
23. 3. 2007   #11
-
0
-

asi najlepsi sposob co ma napada je moderovanie vlaken(navzdory svojim nevyhodam). ja by som sa s filrom oplzlosti nepatlal, nie z lenivost ale preto, ze to pokladam za zbytocne. ked mas vo fore slusnu partiu, tak budu grobiana ignorovat a on sa potom zbada, ked je to skupina hulvatov tak preco by si im robil cenzuru ked im to aj tak nebude vadit? vulgarne prispevky by som nechal tizden na "obdiv" a potom zmazal/editoval pripadne (neskor) banoval uzivatela . . .
btw: samozrejme ti zelam vela ststia a malo cenzurovanych nevinnych slov!

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Marek Štafl0
Stálý člen
23. 3. 2007   #12
-
0
-

...a potom zmazal/editoval pripadne (neskor) banoval uzivatela . . .


Tohle je něco, s čím si taky nevím rady. Jak můžu zablokovat přístup určitému uživateli? Podle uživatelského jména je to blbost - zaregistruje se znova. Podle IP taky - např. já mám CDMA od O2 a po každém připojení mám jinou. A mám kámoše, kteří mají úplně stejnou IP a to ani nebydlí ve stejným paneláku - mají připojení přes síťovku nebo co.
Jak se teda dá zablokovat přístup uživateli, aniž bych se musel bát, že přitom zablokuju někoho jiného, nebo ten zablokovaný přijde příště znova, protože bude mít jinou IP?

Nahlásit jako SPAM
IP: ...–
23. 3. 2007   #13
-
0
-

Opravdu spolelhlivy zpusob neexistuje. muzes to take udelat pres cookie, tu je ale velmi jednoduche vymazat. A tim moznosti konci.

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
MaNi
~ Anonymní uživatel
1 příspěvek
14. 4. 2007   #14
-
0
-

To MareX: Každá síťová nebo modemová karta má svoje unikátní identifikační číslo, bohužel nevím, jak ho získat, ale i tak by nastala situace, že by se uživatel mohl připojit z jiného počítače, ale každopádně by se mu to zase o něco ztížilo. Možná zkombinovat více způsobů. Ale jak už bylo řečeno, nic není zpolehlivé :o)

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 44 hostů

Podobná vlákna

Nefunguje switch — založil dragon124

Switch — založil geon

Switch — založil belze

Switch — založil Onsi

Nefunkční switch? — založil kojor44

 

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý