1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
<?xml version='1.0' encoding="utf-8"?>
<!-- $Revision: 297078 $ -->
<!-- Generated by xml_proto.php v2.0. Found in /scripts directory of phpdoc. -->
<refentry xml:id="function.xdiff-string-diff" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>xdiff_string_diff</refname>
<refpurpose>Make unified diff of two strings</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>xdiff_string_diff</methodname>
<methodparam><type>string</type><parameter>old_data</parameter></methodparam>
<methodparam><type>string</type><parameter>new_data</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>context</parameter><initializer>3</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>minimal</parameter><initializer>false</initializer></methodparam>
</methodsynopsis>
<para>
Makes an unified diff containing differences between <parameter>old_data</parameter> string and
<parameter>new_data</parameter> string and returns it. The resulting diff is human-readable.
An optional <parameter>context</parameter> parameter specifies how many lines of context should be
added around each change. Setting <parameter>minimal</parameter> parameter
to true will result in outputting the shortest patch file possible (can take a long time).
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>old_data</parameter></term>
<listitem>
<para>
First string with data. It acts as "old" data.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>new_data</parameter></term>
<listitem>
<para>
Second string with data. It acts as "new" data.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>context</parameter></term>
<listitem>
<para>
Indicates how many lines of context you want to include in the diff
result.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>minimal</parameter></term>
<listitem>
<para>
Set this parameter to &true; if you want to minimalize the size of the
result (can take a long time).
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns string with resulting diff or &false; if an internal error happened.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>xdiff_string_diff</function> example</title>
<para>
The following code makes unified diff of two articles.
</para>
<programlisting role="php">
<![CDATA[
<?php
$old_article = file_get_contents('./old_article.txt');
$new_article = $_REQUEST['article']; /* Let's say that someone pasted a new article to html form */
$diff = xdiff_string_diff($old_article, $new_article, 1);
if (is_string($diff)) {
echo "Differences between two articles:\n";
echo $diff;
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
This function doesn't work well with binary strings. To make diff of binary
strings use <function>xdiff_string_bdiff</function>/<function>xdiff_string_rabdiff</function>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>xdiff_string_patch</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|