#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jan 2007
    Posts
    6
    Rep Power
    0

    Php code problem with + symbol


    hi all..i need some help with php code

    i've have this code
    Code:
    $ValResult=0;
    preg_match_all('/^[a-zA-Z- .,]{2,200}$/', $Valstring, $matches);
    	foreach($matches[0] as $value){
    		if($value!='' || $value!='0' || $value!='null'){
    			$ValResult=1;
    		 }	
    		 else{
    			$ValResult=0;
    		 }			
    	}
    	 return $ValResult;
    and try it with

    1)$Valstring='hulu'; and its return $ValResult=1--ok
    2)$Valstring='hulu-'; and its return $ValResult=1--ok
    3)$Valstring='hulu123'; and its return $ValResult=0--ok
    4)$Valstring='hulu]'; and its return $ValResult=0--ok

    but the when i try it with

    5)$Valstring='hulu+'; and its return $ValResult=1--not ok

    it suppose to return $ValResult=0

    can someone help me with..thanking you all in advance for reviewing my post
  2. #2
  3. Sarcky
    Devshed Supreme Being (6500+ posts)

    Join Date
    Oct 2006
    Location
    Pennsylvania, USA
    Posts
    10,908
    Rep Power
    6352
    I ran your code and got the correct results:
    PHP Code:
    <?php
    function check_string($Valstring) {
        
    $ValResult=0;
    preg_match_all('/^[a-zA-Z- .,]{2,200}$/'$Valstring$matches);
        foreach(
    $matches[0] as $value){
            if(
    $value!='' || $value!='0' || $value!='null'){
                
    $ValResult=1;
             }  
             else{
                
    $ValResult=0;
             }          
        }
         return 
    $ValResult
    }

    $array = array("hulu""hulu-""hulu123""hulu]""hulu+");
    foreach ( 
    $array AS $Valstring ) {
        echo 
    "$Valstring has a result of " check_string($Valstring) . "\n";
    }
    ?>
    However, this is a very inefficient way of doing this. A better function:
    PHP Code:
    <?php
    function check_string($Valstring) {
        if ( 
    preg_match('/^[a-zA-Z .,-]{2,200}$/'$Valstring) ) {
            return 
    1;
        }
        return 
    0
    }

    $array = array("hulu""hulu-""hulu123""hulu]""hulu+");
    foreach ( 
    $array AS $Valstring ) {
        echo 
    "$Valstring has a result of " check_string($Valstring) . "\n";
    }
    ?>
    Both of these output:
    Code:
    hulu has a result of 1
    hulu- has a result of 1
    hulu123 has a result of 0
    hulu] has a result of 0
    hulu+ has a result of 0
    -Dan
    HEY! YOU! Read the New User Guide and Forum Rules

    "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." -Benjamin Franklin

    "The greatest tragedy of this changing society is that people who never knew what it was like before will simply assume that this is the way things are supposed to be." -2600 Magazine, Fall 2002

    Think we're being rude? Maybe you asked a bad question or you're a Help Vampire. Trying to argue intelligently? Please read this.

IMN logo majestic logo threadwatch logo seochat tools logo