* * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * - Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * - Neither the name of the Chris Boulton nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * * @package Diff * @author Chris Boulton * @copyright (c) 2009 Chris Boulton * @license New BSD License http://www.opensource.org/licenses/bsd-license.php * @version 1.1 * @link http://github.com/chrisboulton/php-diff */ class Diff_SequenceMatcher { /** * @var string|array Either a string or an array containing a callback function to determine if a line is "junk" or not. */ private $junkCallback = null; /** * @var array The first sequence to compare against. */ private $a = null; /** * @var array The second sequence. */ private $b = null; /** * @var array Array of characters that are considered junk from the second sequence. Characters are the array key. */ private $junkDict = array(); /** * @var array Array of indices that do not contain junk elements. */ private $b2j = array(); private $options = array(); private $matchingBlocks = null; private $opCodes = null; private $fullBCount = null; private $defaultOptions = array( 'ignoreNewLines' => false, 'ignoreWhitespace' => false, 'ignoreCase' => false ); /** * The constructor. With the sequences being passed, they'll be set for the * sequence matcher and it will perform a basic cleanup & calculate junk * elements. * * @param string|array $a A string or array containing the lines to compare against. * @param string|array $b A string or array containing the lines to compare. * @param string|array $junkCallback Either an array or string that references a callback function (if there is one) to determine 'junk' characters. * @param array $options */ public function __construct($a, $b, $junkCallback=null, $options) { $this->a = null; $this->b = null; $this->junkCallback = $junkCallback; $this->setOptions($options); $this->setSequences($a, $b); } /** * Set new options * * @param array $options */ public function setOptions($options) { $this->options = array_merge($this->defaultOptions, $options); } /** * Set the first and second sequences to use with the sequence matcher. * * @param string|array $a A string or array containing the lines to compare against. * @param string|array $b A string or array containing the lines to compare. */ public function setSequences($a, $b) { $this->setSeq1($a); $this->setSeq2($b); } /** * Set the first sequence ($a) and reset any internal caches to indass="nav-path-selected accordion" href="javascript:void(0)">For Authors
  • Quality Reports
  • Specials Issues
  • Contact
  • iosr-JPBS   Volume-11 ~ Issue-4 ~ Jul-Aug 2016