Re: substr?

From: Date: Mon, 17 Jun 2002 19:53:37 +0000
Subject: Re: substr?
Groups: php.general 
Request: Send a blank email to php-general+get-102587@lists.php.net to get a copy of this message
I think the logic would be easier to understand if it is coded as: if (!$_POST['NumC'] == "") { if ((substr($_POST['NumC'], 0, 3) != "082") AND (substr($_POST['NumC'], 0, 3) != "072") AND (substr($_POST['NumC'], 0, 3) != "083") AND (substr($_POST['NumC'], 0, 3) != "073") AND (substr($_POST['NumC'], 0, 3) != "084"))) { $FormError = "True"; A rule in programming (logic) that I learned a long time ago (20+ years ago) don't use OR when coding inequalities with the same variable. if ( $Var !=4 OR $Var !=3 OR $Var !=2 OR $Var !=1) - will always be true no matter what the value of Var - never false. if ( $Var !=4 AND $Var !=3 AND $Var !=2 AND $Var !=1) - will be false if Var is 4, 3, 2, or 1, else true for any other value. "Chris Knipe" <savage@savag To: <php-general@lists.php.net> e.za.org> cc: Subject: Re: [PHP] substr? 06/17/2002 03:18 PM Changed it to: if (!$_POST['NumC'] == "") { if (!((substr($_POST['NumC'], 0, 3) == "082") OR (substr($_POST['NumC'], 0, 3) == "072") OR (substr($_POST['NumC'], 0, 3) == "083") OR (substr($_POST['NumC'], 0, 3) == "073") OR (substr($_POST['NumC'], 0, 3) == "084"))) { $FormError = "True"; And it seems to be working fine now.... Eish, all these little brackets.... So what's the difference between if (!(($blah == blah) OR ($ab == ab))) { and if ((!$blah == blah) OR (!$ab == ab)) { Shouldn't they both do the same? And if so, why didn't they in this case?? Thanks for everyone helping... once again :-) ----- Original Message ----- From: "Chris Knipe" <savage@savage.za.org> To: "Darren Gamble" <Darren.Gamble@sjrb.ca>; <php-general@lists.php.net> Sent: Monday, June 17, 2002 8:48 PM Subject: Re: [PHP] substr? > if ((!substr($_POST['NumC'] == "072") OR....()) { > > Also passes.... I've tried it.. Believe me > > > ----- Original Message ----- > From: "Darren Gamble" <Darren.Gamble@sjrb.ca> > To: "'Chris Knipe'" <savage@savage.za.org>; > <php-general@lists.php.net> > Sent: Monday, June 17, 2002 8:40 PM > Subject: RE: [PHP] substr? > > > > Good day. > > > > Of course it will always return true... look at your logic. > > > > I believe you meant for each test to be an equality test, not an > inequality > > test. > > > > ============================ > > Darren Gamble > > Planner, Regional Services > > Shaw Cablesystems GP > > 630 - 3rd Avenue SW > > Calgary, Alberta, Canada > > T2P 4L4 > > (403) 781-4948 > > > > > > > -----Original Message----- > > > From: Chris Knipe [mailto:savage@savage.za.org] > > > Sent: Monday, June 17, 2002 12:30 PM > > > To: php-general@lists.php.net > > > Subject: Re: [PHP] substr? > > > > > > > > > Thanks, > > > > > > I don't know *what* I was thinking.... The if statement still > > > returns false > > > though... > > > > > > // Validate cell if we have one. > > > if (!$_POST['NumC'] == "") { > > > if ((substr($_POST['NumC'], 0, 3) != "082") OR > > > (substr($_POST['NumC'], > > > 0, 3) != "072") OR > > > (substr($_POST['NumC'], 0, 3) != "083") OR > > > (substr($_POST['NumC'], > > > 0, 3) != "073") OR > > > (substr($_POST['NumC'], 0, 3) != "084")) { > > > > > > Any number passes. For example, if I have 123 as the first > > > three chars, it > > > passes... I fail to see how it manages this?? > > > > > > > > > > > > ----- Original Message ----- > > > From: "Lazor, Ed" <ELazor@providence.org> > > > To: "'Chris Knipe'" <savage@savage.za.org>; > > > <php-general@lists.php.net> > > > Sent: Monday, June 17, 2002 7:24 PM > > > Subject: RE: [PHP] substr? > > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > Is this right? It seems to me that substr is working in reverse? > > > > > > > > Reverse... that's what the -7 specifies. > > > > > > > > substr($string, 0, -7) > > > > > > > > is > > > > > > > > 123 > > > > > > > > You could also do > > > > > > > > substr($string, 0, 3) > > > > > > > > to get the same thing. > > > > > > > > > > > > > > > > > > $string = "1234567890"; // Always numerical, always 10 chars. > > > > > if (!substr($string, 0, -7) == "083") { > > > > > echo "not 083\n"; > > > > > } else { > > > > > // Exists here. > > > > > echo "is 083\n"; > > > > > } > > > > > > > > > > Due to the reverse if, shouldn't it exit not 083? I'd just like > > > > > to get some clarity on this, allot of my work depends on > > > > > validating these > > > > > numbers *correctly*.... Basically, I want to see if the > > > first three > > > > > characters is 072, 073, 082, 083, or 084. If not, the > > > $string must be > > > > > discarded. > > > > > > > > > > I've also tried if(substr($string, 0, -7) != "083"), but > > > > > that > > > > > also doesn't > > > > > work.... ereg(*) also doesn't seem to be able to search for > > > > > patterns only on > > > > > the beginning of a string, so even if I wanted to use a ereg > > > > > expression, I'd > > > > > have to cut the first 3 chars from the string with substr first? > > > > > > > > > > How can / should I validate these numbers? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > PHP General Mailing List (http://www.php.net/) > > > > > To unsubscribe, visit: > > > > > http://www.php.net/unsub.php > > > > > > > > > > > > > > > > ************************************************************** > > > ************** > > > > This message is intended for the sole use of the individual > > > and entity to > > > > whom it is addressed, and may contain information that is > > > privileged, > > > > confidential and exempt from disclosure under applicable > > > law. If you are > > > > not the intended addressee, nor authorized to receive for > > > the intended > > > > addressee, you are hereby notified that you may not use, > > > copy, disclose or > > > > distribute to anyone the message or any information contained in the > > > > message. If you have received this message in error, > > > please immediately > > > > advise the sender by reply email and delete the message. > > > Thank you very > > > > much. > > > > > > > > -- > > > > PHP General Mailing List (http://www.php.net/) > > > > To unsubscribe, visit: > > > > http://www.php.net/unsub.php > > > > > > > > > > > > > > > > > -- > > > PHP General Mailing List (http://www.php.net/) > > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php

« previous php.general (#102587) next »