protected function cleanPackets(array $packets = [])
    {

        // Get the number of packets
        $packetCount = count($packets);

        // Compare last var of current packet with first var of next packet
        // On a partial match, remove last var from current packet,
        // variable header from next packet
        for ($i = 0, $x = $packetCount; $i < $x - 1; $i++) {
            // First packet
            $fst = substr($packets[$i], 0, -1);
            // Second packet
            $snd = $packets[$i + 1];
            // Get last variable from first packet
            $fstvar = substr($fst, strrpos($fst, "\x00") + 1);
            // Get first variable from last packet
            $snd = substr($snd, strpos($snd, "\x00") + 2);
            $sndvar = substr($snd, 0, strpos($snd, "\x00"));
            // Check if fstvar is a substring of sndvar
            // If so, remove it from the first string
            if (!empty($fstvar) && strpos($sndvar, $fstvar) !== false) {
                $packets[$i] = preg_replace("#(\\x00[^\\x00]+\\x00)$#", "\x00", $packets[$i]);
            }
        }

        // Now let's loop the return and remove any dupe prefixes
        for ($x = 1; $x < $packetCount; $x++) {
            $buffer = new Buffer($packets[$x], Buffer::NUMBER_TYPE_BIGENDIAN);

            $prefix = $buffer->readString();

            // Check to see if the return before has the same prefix present
            if ($prefix != null && strstr($packets[($x - 1)], $prefix)) {
                // Update the return by removing the prefix plus 2 chars
                $packets[$x] = substr(str_replace($prefix, '', $packets[$x]), 2);
            }

            unset($buffer);
        }

        unset($x, $i, $snd, $sndvar, $fst, $fstvar);

        // Return cleaned packets
        return $packets;
    }
protected function cleanPackets(array $packets = [])
    {

        // Get the number of packets
        $packetCount = count($packets);

        // Compare last var of current packet with first var of next packet
        // On a partial match, remove last var from current packet,
        // variable header from next packet
        for ($i = 0, $x = $packetCount; $i < $x - 1; $i++) {
            // First packet
            $fst = substr($packets[$i], 0, -1);
            // Second packet
            $snd = $packets[$i + 1];
            // Get last variable from first packet
            $fstvar = substr($fst, strrpos($fst, "\x00") + 1);
            // Get first variable from last packet
            $snd = substr($snd, strpos($snd, "\x00") + 2);
            $sndvar = substr($snd, 0, strpos($snd, "\x00"));
            // Check if fstvar is a substring of sndvar
            // If so, remove it from the first string
            if (!empty($fstvar) && strpos($sndvar, $fstvar) !== false) {
                $packets[$i] = preg_replace("#(\\x00[^\\x00]+\\x00)$#", "\x00", $packets[$i]);
            }
        }

        // Now let's loop the return and remove any dupe prefixes
        for ($x = 1; $x < $packetCount; $x++) {
            $buffer = new Buffer($packets[$x], Buffer::NUMBER_TYPE_BIGENDIAN);

            $prefix = $buffer->readString();

            // Check to see if the return before has the same prefix present
            if ($prefix != null && strstr($packets[($x - 1)], $prefix)) {
                // Update the return by removing the prefix plus 2 chars
                $packets[$x] = substr(str_replace($prefix, '', $packets[$x]), 2);
            }

            unset($buffer);
        }

        unset($x, $i, $snd, $sndvar, $fst, $fstvar);

        // Return cleaned packets
        return $packets;
    }
protected function cleanPackets ( array $ packets = [ ] ) { // Get the number of packets $ packetCount = count ( $ packets ) ; // Compare last var of current packet with first var of next packet // On a partial match, remove last var from current packet, // variable header from next packet for ( $ i = 0 , $ x = $ packetCount ; $ i < $ x - 1 ; $ i ++ ) { // First packet $ fst = substr ( $ packets [ $ i ] , 0 , - 1 ) ; // Second packet $ snd = $ packets [ $ i + 1 ] ; // Get last variable from first packet $ fstvar = substr ( $ fst , strrpos ( $ fst , "\x00" ) + 1 ) ; // Get first variable from last packet $ snd = substr ( $ snd , strpos ( $ snd , "\x00" ) + 2 ) ; $ sndvar = substr ( $ snd , 0 , strpos ( $ snd , "\x00" ) ) ; // Check if fstvar is a substring of sndvar // If so, remove it from the first string if ( ! empty ( $ fstvar ) && strpos ( $ sndvar , $ fstvar ) !== false ) { $ packets [ $ i ] = preg_replace ( "#(\\x00[^\\x00]+\\x00)$#" , "\x00" , $ packets [ $ i ] ) ; } } // Now let's loop the return and remove any dupe prefixes for ( $ x = 1 ; $ x < $ packetCount ; $ x ++ ) { $ buffer = new Buffer ( $ packets [ $ x ] , Buffer :: NUMBER_TYPE_BIGENDIAN ) ; $ prefix = $ buffer -> readString ( ) ; // Check to see if the return before has the same prefix present if ( $ prefix != null && strstr ( $ packets [ ( $ x - 1 ) ] , $ prefix ) ) { // Update the return by removing the prefix plus 2 chars $ packets [ $ x ] = substr ( str_replace ( $ prefix , '' , $ packets [ $ x ] ) , 2 ) ; } unset ( $ buffer ) ; } unset ( $ x , $ i , $ snd , $ sndvar , $ fst , $ fstvar ) ; // Return cleaned packets return $ packets ; }
Handles cleaning up packets since the responses can be a bit "dirty"

@param array $packets

@return array
Handles cleaning up packets since the responses can be a bit dirty