Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #12011

Re: Regarding split text and match from data base

From Jerry Stuckle <jstucklex@attglobal.net>
Newsgroups comp.lang.php
Subject Re: Regarding split text and match from data base
Date 2013-11-28 19:27 -0500
Organization A noiseless patient Spider
Message-ID <l78n12$7d9$1@dont-email.me> (permalink)
References (3 earlier) <b9bfb809-4513-4262-a0c9-65acf113aa43@googlegroups.com> <l7518b$e05$1@dont-email.me> <0.df047f3bb244630b50f4.20131128122727GMT.87k3fs1zkg.fsf@bsb.me.uk> <l77pcm$uih$1@dont-email.me> <0.f78e527401699a6f7ed5.20131128185119GMT.87txewz7fc.fsf@bsb.me.uk>

Show all headers | View raw


On 11/28/2013 1:51 PM, Ben Bacarisse wrote:
> Jerry Stuckle <jstucklex@attglobal.net> writes:
>
>> On 11/28/2013 7:27 AM, Ben Bacarisse wrote:
>>> Jerry Stuckle <jstucklex@attglobal.net> writes:
>>> <snip>
>>>> Here is a better version.  It uses a regex to get all of the ip and
>>>> mac addresses in an array, then selects them.  I set this up for CLI
>>>> output (for basic testing here), so you'll have to change the display.
>>>> But otherwise it should work with few modifications and correcting for
>>>> the line wrapping as indicated
>>>>
>>>> <?php
>>>>
>>>> $arp = shell_exec('arp -a');
>>>>
>>>> ----
>>>>
>>>> // *1
>>>> $res=preg_match_all('/^\s*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\s+([0-9a-fA-F]{2}\-[0-9a-fA-F]{2}\-[0-9a-fA-F]{2}\-[0-9a-fA-F]{2}\-[0-9a-fA-F]{2}\-[0-9a-fA-F]{2})/m',
>>>> $arp, $matches, PREG_SET_ORDER);
>>>
>>> I'd do this a little differently.  I'd use PREG_PATTERN_ORDER so that I
>>> can just loop through $matches[2] without any further subscripting, but
>>> I'd also not capture the IP address since it does not seem to be used.
>>>
>>
>> The OP indicated he wanted to capture the IP address.  We don't know
>> what else he may be using it for.  And I used PREG_SET_ORDER
>> specifically to keep the IP address with the MAC address.
>
> Without more code it's hard to tell, but for what I was commenting on,
> pattern order looks better.  The only advantage of either order is if
> there is some natural operation that can be performed on $matches[i] and
> there is no evidence for that as yet for 'set' order.  There is a
> natural operation that is done on all the macs, which it why, on the
> balance of the current evidence, I'd favour pattern order.
>

Yes, it is hard to tell without more code.  However, lacking that I 
think set order is more appropriate, because the linkage between the ip 
and the mac address is maintained.

> <snip>
>>> As a result of changing the capture order, I'd also be tempted to
>>> re-write the loop:
>>>
>>> <snip>
>>>>         $macs = ''; // *4
>>>>         foreach ($matches as $match) {
>>>>            if ($macs != '') // Not the first time through, so
>>>>               $macs .= ', '; // Add a separator
>>>>            $macs .= '\'' . mysqli_real_escape_string($link, $match[2])
>>>> . '\'';  // Append the next MAC address (again all one line above)
>>>>         }
>>>
>>> as $macs = "'" . join("', '", $matches[1]) . "'";
>>
>> Which doesn't work when you capture both MAC and IP.
>
> You can if you just write 2 instead of 1, but I suspect that's not what
> you meant.  You can't do this if you collect in 'set' order rather than
> 'pattern' order, but even if the IP address is captured there's no clear
> reason to choose set order (so far as we know).
>

No, because your regex did not parse out the ip.  And again, pattern 
order breaks the linkage between ip and mac address.  I chose that 
because if the OP wants the ip also, it would not make sense to use it 
without the mac address.

>>   Additionally,
>> you don't call mysqli_real_escape_string() for the values.  Yes, I
>> know it's not actually required here - but it's a good habit for new
>> programmers to get into.  It's much better to call it when not needed
>> than to not call it when it is needed.
>
> Well, you can't mean that literally (there are places where it's not
> needed where using it would break the code) but I know what you are
> getting at.  Part of the equation should be, in my view, how likely it
> is that the quoting will be needed.  Given the context (mac addresses)
> it's not very likely, and I'd take that into account.
>
> <snip>
>

Yes, I do mean that literally.  And there is no place where you call it 
for strings that will break the code.  If there is, I would like you to 
show it.  mysqli_real_escape_string is about more than quoting.

-- 
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Regarding split text  and match from data base jalaf28@gmail.com - 2013-11-22 03:28 -0800
  Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-22 09:24 -0500
  Re: Regarding split text  and match from data base Arno Welzel <usenet@arnowelzel.de> - 2013-11-22 16:34 +0100
    Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-22 10:54 -0500
      Re: Regarding split text  and match from data base Arno Welzel <usenet@arnowelzel.de> - 2013-11-22 17:50 +0100
        Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-22 13:57 -0500
          Re: Regarding split text  and match from data base Arno Welzel <usenet@arnowelzel.de> - 2013-11-23 08:52 +0100
            Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-23 07:05 -0500
              Re: Regarding split text  and match from data base Arno Welzel <usenet@arnowelzel.de> - 2013-11-24 17:17 +0100
                Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-24 11:23 -0500
  Re: Regarding split text  and match from data base jalaf28@gmail.com - 2013-11-24 20:02 -0800
  Re: Regarding split text  and match from data base jalaf28@gmail.com - 2013-11-24 22:09 -0800
  Re: Regarding split text  and match from data base jalaf28@gmail.com - 2013-11-24 22:35 -0800
    Re: Regarding split text  and match from data base Arno Welzel <usenet@arnowelzel.de> - 2013-11-25 08:35 +0100
      Re: Regarding split text  and match from data base Arno Welzel <usenet@arnowelzel.de> - 2013-11-25 08:36 +0100
    Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-25 09:31 -0500
  Re: Regarding split text  and match from data base jalaf28@gmail.com - 2013-11-25 21:32 -0800
  Re: Regarding split text  and match from data base jalaf28@gmail.com - 2013-11-25 21:41 -0800
    Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-26 07:20 -0500
      Re: Regarding split text  and match from data base jalaf28@gmail.com - 2013-11-26 21:22 -0800
        Re: Regarding split text  and match from data base Arno Welzel <usenet@arnowelzel.de> - 2013-11-27 12:29 +0100
          Re: Regarding split text  and match from data base Arno Welzel <usenet@arnowelzel.de> - 2013-11-27 12:31 +0100
        Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-27 09:57 -0500
          Re: Regarding split text  and match from data base Ben Bacarisse <ben.usenet@bsb.me.uk> - 2013-11-28 12:27 +0000
            Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-28 11:01 -0500
              Re: Regarding split text  and match from data base Ben Bacarisse <ben.usenet@bsb.me.uk> - 2013-11-28 18:51 +0000
                Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-28 19:27 -0500
                Re: Regarding split text  and match from data base Ben Bacarisse <ben.usenet@bsb.me.uk> - 2013-11-29 02:34 +0000
                Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-28 22:47 -0500
                Re: Regarding split text  and match from data base Ben Bacarisse <ben.usenet@bsb.me.uk> - 2013-11-29 05:01 +0000
                Re: Regarding split text  and match from data base Jerry Stuckle <jstucklex@attglobal.net> - 2013-11-29 07:40 -0500
                Re: Regarding split text  and match from data base Ben Bacarisse <ben.usenet@bsb.me.uk> - 2013-11-29 13:58 +0000

csiph-web