Re: substr?
| From: | lherbst at PROPAPPR dot MARION dot FL dot US | 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