Versio

Lege print_r terwijl array bestaat

Overzicht Reageren

Tom K

Tom K

15/03/2009 18:50:00
Quote Anchor link
Hallo Allen,

Ik heb nu de volgende code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    if(preg_match('#:(.*) JOIN :(.*)#', $data, $matches))
            {

                $channel = $matches[2];
                echo $channel;
                print_r($channels[$channel]);
                if(isset($channels[$channel]))
                {

                    echo "YAHOO\n";
                }
            }

?>


hierbij bevat $channels:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Array
(
    [#devhouse] => Array
        (
            [owners] => Array
                (
                    [tom] => ***
                    [bob] => ***
                )

            [password] =>
            [channel_password] =>***
            [welcome_text] => Welkom op #devhouse!
        )

)


$channel bevat: #devhouse.

Ik dacht dat alles wel goed zal gaan. Aangezien $channels[$channel] of te wel: $channels['#devhouse'] gewoon bestaat. Maar als ik kijk in de output, zie ik geen YAHOO staan, of geen print_r van $channels['#devhouse']. Ik vind dit een raar probleem, weet iemand wat er fout gaat?

Tom
Gewijzigd op 01/01/1970 01:00:00 door Tom K
 
PHP hulp

PHP hulp

25/05/2012 07:52:42
Gesponsorde koppelingen:
 
- SanThe -

- SanThe -

15/03/2009 19:07:00
Quote Anchor link
Zet dit eens op regel 4 eerste script.
$channel = '#devhouse';
 
Tom K

Tom K

15/03/2009 19:09:00
Quote Anchor link
dan werkt het gewoon, ik bedenk me net iets, misschien moet ik alle spaties eruit halen met een ereg, ik probeer het even
 
- SanThe -

- SanThe -

15/03/2009 19:12:00
Quote Anchor link
Tom schreef op 15.03.2009 19:09:
dan werkt het gewoon, ik bedenk me net iets, misschien moet ik alle spaties eruit halen met een ereg, ik probeer het even

Dus gaat er hierin iets niet zoals jij wilt:
if(preg_match('#:(.*) JOIN :(.*)#', $data, $matches))
{
$channel = $matches[2];
 
Tom K

Tom K

15/03/2009 19:13:00
Quote Anchor link
dat moet ook ja, maar ik weet alleen niet wat aangezien $channel gewoon #devhouse bevat.

Helaas werkt $channel = ereg_replace(' ', '', $channel); ook niet...
 
- SanThe -

- SanThe -

15/03/2009 19:18:00
Quote Anchor link
Tom schreef op 15.03.2009 19:09:
dan werkt het gewoon, ik bedenk me net iets, misschien moet ik alle spaties eruit halen met een ereg, ik probeer het even

Spaties?

$channel = trim($matches[2]);
 
Tom K

Tom K

15/03/2009 19:21:00
Quote Anchor link
ik zal zo trim eens proberen, maar ik heb nu dit, en dat werkt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if(preg_match('#:(.*) JOIN :(.*)#', $data, $matches))
            {

                
                $channel = $matches[2];
                $channel = preg_replace('~[^a-zA-Z0-9\d #]~i', '', $channel);
                echo $channel;
                
                
                if(isset($channels[$channel]))
                {

                    echo "YAHOO\n";
                }
            }

?>
Gewijzigd op 01/01/1970 01:00:00 door Tom K
 



Overzicht Reageren

Get Adobe Flash player