File: xdiff-string-diff.xml

package info (click to toggle)
php-doc 20100521-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 59,992 kB
  • ctags: 4,085
  • sloc: xml: 796,833; php: 21,338; cpp: 500; sh: 117; makefile: 58; awk: 28
file content (143 lines) | stat: -rw-r--r-- 4,193 bytes parent folder | download
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
-->