Avatar billede jammerlab Nybegynder
08. december 2003 - 16:26 Der er 16 kommentarer og
1 løsning

while loop

Skal bruge lidt hjælp her. Er igang med at lave en IRC bot i PHP og jeg skal tælle hvor mange brugere der er på en channel. For at få alle names på en channel skal jeg sende NAMES ... så for jeg alle navnene... Så her er mit spørgsmål: Hvordan for jeg lavet en while loop som tæller disse navne? :)
Avatar billede fangel Nybegynder
08. december 2003 - 16:28 #1
kommer de som

Navn1 Navn2 Navn3 Navn4 eller hvordan

så kan du lave en

$str = "Navn1 Navn2 Navn3 Navn4";
echo count(explode(" ", $str));

Morten
Avatar billede jammerlab Nybegynder
08. december 2003 - 16:34 #2
jep ...

:tiscali.dk.quakenet.org 353 |BotlingPHP| @ #Amici-cs :|BotlingPHP| @Hula-Mula @
Amici|Jatz @Amici|Sniper_C @Amici|ArW-\ @Amici|nk3-ffa @Myth_Dark^off +A`|Mari^A
way @L
:tiscali.dk.quakenet.org 366 |BotlingPHP| #Amici-cs :End of /NAMES list.

Sådan den skriver det :)
Avatar billede jammerlab Nybegynder
08. december 2003 - 16:39 #3
men jeg ved jo ikke hvor mange navne der er...
Avatar billede fangel Nybegynder
08. december 2003 - 16:44 #4
så det hedder

[noget] : [navn1] @ [navn2] @ [navn3] [noget]

så tæl antal @'er - da det første navn er botten - og denne skal jo nok ikke tælles med

$str = ":tiscali.dk.quakenet.org 353 |BotlingPHP| @ #Amici-cs :|BotlingPHP| @Hula-Mula @
Amici|Jatz @Amici|Sniper_C @Amici|ArW-\ @Amici|nk3-ffa @Myth_Dark^off +A`|Mari^A
way @L
:tiscali.dk.quakenet.org 366 |BotlingPHP| #Amici-cs :End of /NAMES list.";

echo count(explode("@", $str));

Morten
Avatar billede jammerlab Nybegynder
08. december 2003 - 17:00 #5
Du misforstår mig lidt :D Den skal tælle alle personer... @ indikere brugeren er en såkaldt OP som kan styrer channlen... + er voice... og så resten har intet foran navnet... Derfor den ikke lige kan tælle det på den måde. Altså med @...
Avatar billede jammerlab Nybegynder
08. december 2003 - 17:02 #6
kan man tælle mellemrummet? :) Det er da det eneste navnene har noget tilfælles hehe
Avatar billede fangel Nybegynder
08. december 2003 - 17:03 #7
OK - kender ikke ICQ - så prøvede mig frem... du skal bare finde en måde hvorpå du kan skeldne personerne fra hinanden - er det fx mellemrum mellem, komme mellem eller hva?

og så bruge dette

echo count(explode("[tegn der er mellem hvert navn]", $strengDerIndholderTekst));

og så evt. korrigere med et par stykker for at komme uden om start + slut stykket

Morten
Avatar billede fangel Nybegynder
08. december 2003 - 17:03 #8
hvis der er mellemrum mellem kan du benytte den allerførste kode jeg skrev

Morten
Avatar billede jammerlab Nybegynder
08. december 2003 - 17:04 #9
Ok jeg prøver mig lige frem... stay tuned.
Avatar billede fangel Nybegynder
08. december 2003 - 17:07 #10
jeg skal liiiige lave lidt på en større gymnasie opgave så hvis jeg er lidt lang tid om at svare er det derfor - jeg har ikke forladt dig ;)

Morten
Avatar billede jammerlab Nybegynder
11. december 2003 - 00:11 #11
$str = ":tiscali.dk.quakenet.org 353 |BotlingPHP| @ #Amici-cs :|BotlingPHP| @Hula-Mula @Amici|Jatz @Amici|Sniper_C @Amici|ArW-\ @Amici|nk3-ffa @Myth_Dark^off +A`|Mari^Away @L";

$users = count(explode(" ", $str));
$ops = count(explode("@", $str));
$ops_count = $ops;
$user_count = $users;
echo "Der er $user_count på #amici ... Der er $ops_count OP's";

Vi er enige om at der er 8 @'er ... hvorfor siger den så 9?!
Har også prøvet med "+" den tæller ikke korrekt!
Avatar billede fangel Nybegynder
11. december 2003 - 07:53 #12
fordi der står noget i hver ende af strengen også - den tager servernavnet som et navn også - bare minus med 1 - så passer det

Morten
Avatar billede jammerlab Nybegynder
16. december 2003 - 19:32 #13
Morten du må altså hjælpe mig her hehe :P Jeg roder rundt i det og kan simpelthen ikke helt få den til at regne det korrekt ud... Den følgende kode bruger jeg til at hente det stykke ud som jeg skal bruge.

if ($params[2] == "#Amici" && !$co) {

$test = implode (" ", $raw);

$lala = count(explode("+", $test));
$str2 = $lala + $str2;
$didi = count(explode("@", $test));
$str3 = $didi + $str3;

print "<pre>";
print ($str2);
print "</pre>";
print "<pre>";
print ($str3);
print "</pre>";

if ($params[2] == "End") {

$co = true;
print "FUCKING DONE!!!!!";
$str3 = $str3 - 1;
}
       
}

Håber du kan forstå det en smule. Det den så hente (rimlig sikker) er følgende:

:tiscali.dk.quakenet.org 353 |BotlingPHP| = #Amici :|BotlingPHP| dexter^-^ iLL`LuI3[o_O] MI-6-Freak Xelfer kc^Chuga|dod @Amici|nk3^csm JUL|Ahllmann Ch
apper^ [nZ]Japan4 FINK [JODO]Musen^bnc Amici|Pyrus KC^Soth @Amici|Granau +[Reality]otek vitting`FUCKTDC Aspecter|N\A +[IGGY]Fuketsu +[IGGY]Ax^mad [S-G
]Speedy^AFK @Hula-Mula Zuhlanka TriNitroToluen cT`dk|D|cE NoXZ Collins YverBamse Amici|Chaos CoD^Jack|VSA DuGi|v| [G-P]RheXiZ Tomsi +Legenden|off @gar
|haandbold
:tiscali.dk.quakenet.org 353 |BotlingPHP| = #Amici :|cawa|Ted_Borg |PB|SON MI-6-Ruben^af @Amici|Sniper_C @Amici|Zard^ Mo`Raizt
^brb eKings|TraxQ `1a`smovs^afk +rico^havnen [SiTH]El_Donto @FlodfugL^away kc^HomeBoy [SNAFU]Damp-mam CAI`skEv MI-6-MiniDK pihl|VSA [AFK]AnkZ Buka^Cs
heMi- snitter^ @Amici|gnimmelf Muffe| Rommel^ MiKr0^AFK +Spac3caT^^ MI-6-Farfar_Lar ea`pleXeus Ante^sso^sux Geek|Scar +RaenjAr|v| MaXwell|te [21PADV]M
Rdk ding_dingBNC @Amici|Romme [16c]Bland^tv
:tiscali.dk.quakenet.org 353 |BotlingPHP| = #Amici :MI-6-Shot^afk +TwiZteD MI-6-DM^bio +||Tea|| Brutalis +Schack @Amici|ZptR-
afk Blade^mad @Amici|00sex^afk wTr|D|zyclone Amici|Guffy|ZzZ +[JODO]Spectro +Jan`` +[JODO]Ghost^ @Amici|Vamp|afk @A`|Mari^Away @Q +wzr[bnc] +Du3|v| +e
X`Equalizer +MAT|Herbert|OFF Mikkel @Myth^ikkeher
:tiscali.dk.quakenet.org 366 |BotlingPHP| #Amici :End of /NAMES list.
:|BotlingPHP|!~botling@port84.ds1-ro.adsl.cybercity.dk JOIN :#Amici-cs

Altså den starter når den ser #Amici og slutter når den ser #Amici-cs ... men jeg kan ikke regne det ordentligt ud med @ og + og normale brugere :/ Så hvis du gider at hjælpe mig med det så det fungere 100% så smider jeg gerne nogle flere point i puljen :)
Avatar billede fangel Nybegynder
16. december 2003 - 20:05 #14
har desværre ikke lige viljen til at sætte mig ind i det - da jeg synes at de navne lister er forfærdeligt uoverskuelige...

Morten
Avatar billede jammerlab Nybegynder
30. december 2003 - 14:41 #15
Smid et svar mester så jeg kan få lukket :) Og tak for hjælpen.
Avatar billede fangel Nybegynder
30. december 2003 - 14:46 #16
svaa'r

Morten
Avatar billede jammerlab Nybegynder
30. december 2003 - 14:48 #17
hehe
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester