Code Duplication    Length = 26-26 lines in 2 locations

src/htmLawed/htmLawed.php 2 locations

@@ 189-214 (lines=26) @@
186
187
for($i=-1, $ci=count($t); ++$i<$ci;){
188
 // allowed $ok in parent $p
189
 if($ql = count($q)){
190
  $p = array_pop($q);
191
  $q[] = $p;
192
  if(isset($cS[$p])){$ok = $cS[$p];}
193
  elseif(isset($cI[$p])){$ok = $eI; $cI['del'] = 1; $cI['ins'] = 1;}
194
  elseif(isset($cF[$p])){$ok = $eF; unset($cI['del'], $cI['ins']);}
195
  elseif(isset($cB[$p])){$ok = $eB; unset($cI['del'], $cI['ins']);}
196
  if(isset($cO[$p])){$ok = $ok + $cO[$p];}
197
  if(isset($cN[$p])){$ok = array_diff_assoc($ok, $cN[$p]);}
198
 }else{$ok = $inOk; unset($cI['del'], $cI['ins']);}
199
 // bad tags, & ele content
200
 if(isset($e) && ($do == 1 or (isset($ok['#pcdata']) && ($do == 3 or $do == 5)))){
201
  echo '&lt;', $s, $e, $a, '&gt;';
202
 }
203
 if(isset($x[0])){
204
  if(strlen(trim($x)) && (($ql && isset($cB[$p])) or (isset($cB[$in]) && !$ql))){
205
   echo '<div>', $x, '</div>';
206
  }
207
  elseif($do < 3 or isset($ok['#pcdata'])){echo $x;}
208
  elseif(strpos($x, "\x02\x04")){
209
   foreach(preg_split('`(\x01\x02[^\x01\x02]+\x02\x01)`', $x, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY) as $v){
210
    echo (substr($v, 0, 2) == "\x01\x02" ? $v : ($do > 4 ? preg_replace('`\S`', '', $v) : ''));
211
   }
212
  }elseif($do > 4){echo preg_replace('`\S`', '', $x);}
213
 }
214
 // get markup
215
 if(!preg_match('`^(/?)([a-z1-6]+)([^>]*)>(.*)`sm', $t[$i], $r)){$x = $t[$i]; continue;}
216
 $s = null; $e = null; $a = null; $x = null; list($all, $s, $e, $a, $x) = $r;
217
 // close tag
@@ 275-300 (lines=26) @@
272
}
273
274
// end
275
if($ql = count($q)){
276
 $p = array_pop($q);
277
 $q[] = $p;
278
 if(isset($cS[$p])){$ok = $cS[$p];}
279
 elseif(isset($cI[$p])){$ok = $eI; $cI['del'] = 1; $cI['ins'] = 1;}
280
 elseif(isset($cF[$p])){$ok = $eF; unset($cI['del'], $cI['ins']);}
281
 elseif(isset($cB[$p])){$ok = $eB; unset($cI['del'], $cI['ins']);}
282
 if(isset($cO[$p])){$ok = $ok + $cO[$p];}
283
 if(isset($cN[$p])){$ok = array_diff_assoc($ok, $cN[$p]);}
284
}else{$ok = $inOk; unset($cI['del'], $cI['ins']);}
285
if(isset($e) && ($do == 1 or (isset($ok['#pcdata']) && ($do == 3 or $do == 5)))){
286
 echo '&lt;', $s, $e, $a, '&gt;';
287
}
288
if(isset($x[0])){
289
 if(strlen(trim($x)) && (($ql && isset($cB[$p])) or (isset($cB[$in]) && !$ql))){
290
  echo '<div>', $x, '</div>';
291
 }
292
 elseif($do < 3 or isset($ok['#pcdata'])){echo $x;}
293
 elseif(strpos($x, "\x02\x04")){
294
  foreach(preg_split('`(\x01\x02[^\x01\x02]+\x02\x01)`', $x, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY) as $v){
295
   echo (substr($v, 0, 2) == "\x01\x02" ? $v : ($do > 4 ? preg_replace('`\S`', '', $v) : ''));
296
  }
297
 }elseif($do > 4){echo preg_replace('`\S`', '', $x);}
298
}
299
while(!empty($q) && ($e = array_pop($q))){echo '</', $e, '>';}
300
$o = ob_get_contents();
301
ob_end_clean();
302
return $o;
303
}