13. november 2003 - 21:46
Der er
37 kommentarer og 1 løsning
echo et array
hvordan? $command = array_shift ($params); hvordan echo'er jeg hele array'et?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
13. november 2003 - 21:47
#1
Det var kun 15 point hehe
13. november 2003 - 21:49
#2
Skriver man ikke bare echo "$params";
13. november 2003 - 21:49
#3
altså echo array'et? ... for hvis man gør så liger fejlen et andet sted :/
13. november 2003 - 21:50
#4
print_r ($params);
13. november 2003 - 21:51
#5
Evt. lidt pænere opstilling med: echo "<pre>"; print_r ($params); echo "</pre>";
13. november 2003 - 21:52
#6
<? $alfabet = array("abc", "def", "ghi"); for ($i = 0; $i < count($alfabet); $i++) { $udskriv .= "<span>".$alfabet[$i]." </span>"; } echo $udskriv; ?>
13. november 2003 - 21:53
#7
Du kan osse loope gennem arrayet: foreach ($params as $val) { echo $val."<br />"; }
13. november 2003 - 21:55
#8
for ($i = 0; count($params) >= $i; $i++) { echo $params[$i]."<br>"; } en anden metode :)
13. november 2003 - 22:01
#9
$a = Array("abc","def","ghi"); print join (",",$a);
13. november 2003 - 22:02
#10
nu skulle der jo helst ikke komme , med ud når det ikke er med i array'et
13. november 2003 - 22:05
#11
Det er pga. dette: case "luder": fputs ($this->ircsocket, $params . "\r\n"); break; params indeholder så en masse tekst... men $params er et array så man kan ikke bare sende $params afsted :O)
13. november 2003 - 22:09
#12
Så derfor er det også forkert af mig at sige hvordan echoer men det ... ikke det den skal jeg skal bare vide hvad variablen vil hede for hele array'et
13. november 2003 - 22:26
#13
Nogen af jer der kan forstå det her? case "luder": $lala = implode(" ", $params); fputs ($this->ircsocket, "$lala" . "\r\n"); break; Den string jeg skriver er følgende: test luder PRIVMSG sniper^scripter safsd asdf Det den skriver tilbage er: asdf Et eller andet sted så midster jeg alt foran det sidste ord. Nogen af jer der kan se hvad problemet er?
13. november 2003 - 22:28
#14
Og vi snakker IRC her :) så det den burde skrive tilbage til mig er selvf. safsd asdf men den skriver kun det sidste ord.
13. november 2003 - 22:30
#15
implode er det samme som join, så du får sat mellemrum mellem elementerne i $params. Er du sikker på dette array indeholder det rigtige. øhm, hvis jeg ikke må sætte komma mellem elementer, hvorfor må du så sætte blanke - det stod det jo heller ikke..... *g*
13. november 2003 - 22:35
#16
hehe tag dig ikke så meget af hvad jeg siger erikjacobsen :D Vi skal bare havde det til at fungere! ... function on_private_msg ($nick, $ident, $params) { $command = array_shift ($params); switch ($command) { Det er hvad der kommer lige over den tidligere kode... det jeg forstår ved det er at nick og ident af den der skriver bliver gemt, og params er den der indeholder beskeden som er skrevet! Implode er det samme som join ja.. så hvis $params er et array som indeholder alt tekst hvad ville den så hede som variabel for at få alt ud af den?
13. november 2003 - 22:47
#17
$command = array_shift ($params); betyder at man tager det første element ud af arrayet $params. Så det er det jo så nok. Lav lidt testudskrifter med print_r som andre har skrevet om. Så kan vi se hvad der sker.
13. november 2003 - 22:49
#18
Okay smider echo "<pre>"; print_r ($params); echo "</pre>"; inde lige efter function on_private_msg ($nick, $ident, $params) { så kan jeg vel se hvad pokker det er den gemmer :)
13. november 2003 - 22:51
#19
test luder PRIVMSG sniper^scripter safsd asdf sadf asdf asdf <pre>Array ( [0] => test [1] => luder [2] => PRIVMSG [3] => sniper^scripter [4] => safsd [5] => asdf [6] => sadf [7] => asdf [8] => asdf ) </pre> Okay så jeg kan jo se den faktisk gemmer alt hvad jeg skriver i beskeden. Så hvordan for jeg så sendt hele beskeden afsted? :)
13. november 2003 - 22:56
#20
så skulle den jo gå i case "test"
13. november 2003 - 22:58
#21
huh?
13. november 2003 - 23:03
#22
Ja, det første ord er "test"
13. november 2003 - 23:05
#23
nej test er passwordet :) For at få lov til at benytte commandoerne... case er luder :)
13. november 2003 - 23:05
#24
test luder PRIVMSG sniper^scripter lala1 lala2 lala3 lala4 lala5 lala6 lala7 lala8 lala9 <pre>Array ( [0] => test [1] => luder [2] => PRIVMSG [3] => sniper^scripter [4] => lala1 [5] => lala2 [6] => lala3 [7] => lala4 [8] => lala5 [9] => lala6 [10] => lala7 [11] => lala8 [12] => lala9 ) </pre> Sender lala9 tilbage og intet andet.
13. november 2003 - 23:06
#25
Det er muligt du gerne vil have at det er sådan, men det ser det ikke ud til med de stumper kode du hidtil har vist
13. november 2003 - 23:09
#26
Hehe nej den skulle gerne sende: [4] => lala1 [5] => lala2 [6] => lala3 [7] => lala4 [8] => lala5 [9] => lala6 [10] => lala7 [11] => lala8 [12] => lala9 Alle dem tilbage til mig men den sender kun nummer 12 :D og jeg kan ikke lige se hvad fejlen er.
13. november 2003 - 23:11
#27
Så må du jo stirre på din kode til det går op for dig. ...eller dele den med os andre.
13. november 2003 - 23:14
#28
hehe så du kan heller ikke se det? :)
13. november 2003 - 23:15
#29
Jeg kan love dig at jeg kan se det, men ikke fra de snoldede kodestumper du har smidt her
13. november 2003 - 23:17
#30
hehe ;) Jamen jeg troede jo det var det problemet lå... :D kender du den side hvor man kan paste noget kode? For så smider jeg alt ind der... men syntes det er synd du skal se på mange linjers kode når jeg tror problemet er der ;)
13. november 2003 - 23:18
#31
Ja, sådan en side kender jeg godt:
www.eksperten.dk - du har måske hørt om den
13. november 2003 - 23:20
#32
*LOL*@erikjacobsen er den side god du lægger link til??
13. november 2003 - 23:21
#33
Nej, der er altid en masse bøvl og ballade
13. november 2003 - 23:22
#34
hehe ffs :P når men here goes... 2 filer... Botling.php ----------------------- <? define ("BOT_PASSWORD", "test"); include ("ircbot.php"); class botling extends IRC_Bot { function botling ($n = "|BotlingPHP|", $r = "tiscali.dk.quakenet.org", $p = '6667', $e = true, $d = "Botling via PHP", $u = "BotlingPHP", $l = "localhost", $ns = "BotlingPHP") { $this->IRC_Bot(); $this->nick = $n; $this->nickservpword = $ns; $this->username = $u; $this->description = $d; $this->localhost = $l; $this->remotehost = $r; $this->remoteport = $p; $this->echoincoming = $e; } function on_private_msg ($nick, $ident, $params) { echo "<pre>"; print_r ($params); echo "</pre>"; $password = array_shift ($params); if ($password == BOT_PASSWORD) { $command = array_shift ($params); switch ($command) { case "luder": $lala = implode(" ", $params); fputs ($this->ircsocket, "$lala" . "\r\n"); break; case "hehe": $this->lala ($params[0]); break; case "hihi": $this->lala (join($params, " ")); break; case "haha": $this->lala (join($params[0], " ")); break; case "JOIN": $this->irc_join ($params); break; case "PART": $this->irc_part ($params[0]); break; case "QUIT": $this->irc_quit (join($params, " ")); break; case "MSG": $user = array_shift ($params); $this->irc_msg($user, join($params, " ")); break; case "OP": $this->irc_op($params[0], $params[1]); break; case "DEOP": $this->irc_deop($params[0], $params[1]); break; case "ACTION": $user = array_shift ($params); $this->irc_action($user, join($params, " ")); break; } } else { $this->irc_msg($nick, "You are not my master."); } } } $mybot = new botling("|BotlingPHP|"); echo $mybot->bot_connect(); echo $mybot->bot_go(); echo $mybot->irc_join("#amici"); ?> -------------------------- ircbot.php -------------------------- <? class IRC_Bot { var $nick; var $nickservpword; var $username; var $description; var $localhost; var $remotehost; var $remoteport; var $echoincoming; var $ircsocket; function IRC_Bot() { set_time_limit(0); ob_end_flush(); echo "\r\n"; } function bot_connect () { // connect to IRC server $this->ircsocket = fsockopen ($this->remotehost, $this->remoteport) ; if (! $this->ircsocket) { die ("Error connecting to host."); } print "Connected to: $this->remotehost:$this->remoteport\n"; fputs ($this->ircsocket, "USER botling 66.119.161.165 irc.knightwatcher.net :Botling @ PHP\r\n"); fputs ($this->ircsocket, "NICK $this->nick\r\n"); fputs ($this->ircsocket, "IDENTIFY $this->nickservpword\r\n"); } function bot_go () { // IRC loop while (!feof($this->ircsocket)) { $incoming = fgets ($this->ircsocket, 1024); $incoming = str_replace( "\r", "", $incoming); $incoming = str_replace("\n", "", $incoming); if ($this->echoincoming) echo $incoming . "\n"; if (substr($incoming, 0, 1) == ":") { $prefix = substr ($incoming, 0, strpos($incoming, ' ')); $incoming = substr ($incoming, strpos($incoming, ' ') + 1); } else { $prefix = ""; } $command = substr ($incoming, 0, strpos($incoming, ' ')); $incoming = substr ($incoming, strpos($incoming, ' ') + 1); $params = explode (" ", $incoming); if ($command == "PING") fputs($this->ircsocket, "PONG $incoming\r\n"); $this->bot_parse ($prefix, $command, $params); } fputs($this->ircsocket, "QUIT Unexpected\r\n"); } function bot_parse ($prefix, $command, $params) { if ($command == "PRIVMSG") { $nick = substr ($prefix, strpos($prefix, ":") + 1, strpos($prefix, "!") - 1); $ident = substr ($prefix, strpos($prefix, "!")); $target = array_shift ($params); $params[0] = substr ($params[0], 1); if (substr($target, 0, 1) == "#") { $this->on_channel_msg ($nick, $ident, $target, $params); } else { $this->on_private_msg ($nick, $ident, $params); } } if ($command == "NOTICE") { $nick = substr ($prefix, strpos($prefix, ":") + 1, strpos($prefix, "!") - 1); $ident = substr ($prefix, strpos($prefix, "!")); array_shift ($params); $params[0] = substr ($params[0], 1); $this->on_notice ($nick, $ident, $params); } } //////////////////////////////////////////////////// // IRC FUNCTIONS (call these to perform various irc tasks.) // //////////////////////////////////////////////////// function irc_write ($message) { fputs ($this->ircsocket, $message . "\r\n"); } function lala ($message) { $this->irc_write("$message"); } function irc_join ($channel) { $this->irc_write("JOIN $channel"); } function irc_part($channel) { $this->irc_write("PART $channel"); } function irc_quit ($reason) { $this->irc_write("QUIT :$reason"); } function irc_notice ($user, $message) { $this->irc_write("NOTICE :$message"); } function irc_msg ($user, $message) { $this->irc_write("PRIVMSG $user :$message"); } function irc_action ($user, $message) { $this->irc_write ("PRIVMSG $user :" . chr(1) ."ACTION $message"); } function irc_mode ($channel, $user, $mode) { $this->irc_write ("MODE $channel $mode $user"); } function irc_op ($channel, $user) { $this->irc_mode ($channel, $user, "+o"); } function irc_deop ($channel, $user) { $this->irc_mode ($channel, $user, "-o"); } //////////////////////////////////////////////////// // IRC EVENTS (override these in your derived class.) // //////////////////////////////////////////////////// function on_private_msg ($nick, $ident, $params) { } function on_channel_msg ($nick, $ident, $chan, $params) { } function on_notice ($nick, $ident, $params) { } } ?>
13. november 2003 - 23:27
#35
Suk - tror du vi sidder her for at du skal spilde vores tid. Du skriver før at function on_private_msg ($nick, $ident, $params) { $command = array_shift ($params); switch ($command) { er de linier, der kommer ovenover dem, du har vist før. Det kan vi jo se nu, at det ikke passer. Der er mere. Jeg gider simpelthen ikke hjælpe en person, der på den måde lyver for mig og spilder vores tid. Farvel med dig.
13. november 2003 - 23:28
#36
lol :P Okay... men det var så de linjer op til den funktion der er skyld i problemerne...
13. november 2003 - 23:35
#37
detox svar plz... u 2 erikjacobsen selv om du er uforskammet :P
14. november 2003 - 00:41
#38
jo
Vi tilbyder markedets bedste kurser inden for webudvikling