I want to determine whether or not two lines are identical. If they're not: - Has the line simply been edited? - Is it a completely new line? - Has the line been deleted?
To do so i'll have to run a loop, checking each line. But here's where the problem is:
<?php
$str1 = <<<NEWTXT
Once there was a Bar
It was red
It had some Foo
Underneath its Foobar
NEWTXT; $str2 = <<<OLDTXT
Once there was a Bar
It had some Foo
Underneath its Foobar
OLDTXT; $arr1 = explode('\n', $str1);
$arr2 = explode('\n', $str2);$count = 0;
foreach ($arr1 as $line_num => $line) {
if (isset($arr2[$count] && ($line === $arr2[$count]))) {
echo "Unchanged \"" . $line . "\"\n";
} elseif ($line !== $arr2[$count]) {
echo "Changed to \"" . $line . "\" from \"" . $arr2[$count] .
"\"\n";
} elseif (!isset($arr2[$count])) {
echo "Added \"" . $line . "\", was " . $arr2[$count] . "\"\n";
} $count++;
}?>
Then i'd get something like this:
Unchanged "Once there was a Bar"
Changed to "It was red" from "It had some Foo"
Changed to "It had some Foo" from "Underneath its Foobar"
Added "Underneath its Foobar"Where the second, third and fourth line is wrong - i added a line between "There was a Bar" and "It had some Foo"...
How should i do this?
-- Daniel Schierbeck
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php

