PHP 7.4.0RC6 Released!

tidy::repairString

tidy_repair_string

(PHP 5, PHP 7, PECL tidy >= 0.7.0)

tidy::repairString -- tidy_repair_stringSeçimlik bir yapılandırma dosyasını kullanarak bir dizgeyi onarır

Açıklama

Nesne yönelimli kullanım

public tidy::repairString ( string $veri [, mixed $ayarlar [, string $kodlama ]] ) : string

Yordamsal kullanım

tidy_repair_string ( string $veri [, mixed $ayarlar [, string $kodlama ]] ) : string

Belirtilen veri dizgesini onarır.

Değiştirgeler

veri

Onarılacak veri.

ayarlar

Bir dizge veya bir dizi olarak belirtilebilir. Dizge verildiği takdirde yapılandırma dosyasının ismi olarak ele alınır. Dizi olarak verildiğinde ise dizinin yapılandırma seçeneklerini içerdiği varsayılır.

Seçeneklerin açıklamaları için » http://tidy.sourceforge.net/docs/quickref.html adresine bakınız.

kodlama

Belge girdi çıktı kodlaması belirtilir. Olası değerler: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 ve shiftjis.

Dönen Değerler

Onarılan dizge.

Örnekler

Örnek 1 - tidy::repairString() örneği

<?php
ob_start
();
?>

<html>
  <head>
    <title>deneme</title>
  </head>
  <body>
    <p>hata</i>
  </body>
</html>

<?php

$buffer 
ob_get_clean();
$tidy = new tidy();
$clean $tidy->repairString($buffer);

echo 
$clean;
?>

Yukarıdaki örneğin çıktısı:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>deneme</title>
</head>
<body>
<p>hata</p>
</body>
</html>

Ayrıca Bakınız

add a note add a note

User Contributed Notes 3 notes

up
2
gnuffo1 at gmail dot com
9 years ago
You can also use this function to repair xml, for example if stray ampersands etc are breaking it:

<?php
$xml
= tidy_repair_string($xml, array(
   
'output-xml' => true,
   
'input-xml' => true
));
?>
up
1
Romolo
2 years ago
Using tidy is very simple to fix a broken ods/odt document
I wrote the following code to be run from command line

<?php
$zip
= new ZipArchive();
if (
$zip->open($argv[1])) {
 
$fp = $zip->getStream('content.xml'); //file inside archive
 
if(!$fp)
    die(
"Error: can't get stream to document file");
 
$stat = $zip->statName('content.xml');
 
$buf = ""; //file buffer
 
ob_start(); //to capture CRC error message
   
while (!feof($fp)) {
     
$buf .= fread($fp, 2048);
    }
   
$s = ob_get_contents();
 
ob_end_clean();
 
fclose($fp);
 
$zip->close();
 
$config = array(
     
'indent' => true,
     
'clean' => true,
     
'input-xml'  => true,
     
'output-xml' => true,
     
'wrap'       => false
 
);
 
$tidy = new Tidy();
 
$xml = $tidy->repairstring($buf, $config);
 
$array=split("\n",$xml);
 
$file=tempnam("/tmp","xml");
 
$fp=fopen($file,"rw+");
  foreach (
$array as $key=>$value) {
   
fwrite($fp,trim($value),strlen(trim($value)));
    if (
$key==0) {
     
fwrite($fp,"\n");
    }
  }
 
fclose($fp);
  if (
$zip->open($argv[1]) === TRUE) {
   
$zip->deleteName('content.xml');
   
$zip->addFile($file, 'content.xml');
   
$zip->close();
    echo
'recovery complete';
  } else {
    echo
'recovery failed';
  }
 
unlink($file);
}
?>

save it to a file called fixdoc and invoke as:
php fixdoc yourbrokendoc

for your safety, please work on a copy of your doc.
up
0
dan-dot-hunsaker-at-gmail-dot-com
8 years ago
The docs referenced at http://tidy.sourceforge.net/docs/quickref.html above state that the configuration option 'sort-attributes' is an enumeration of 'none' and 'alpha', thereby specifying that strings of either form are the acceptable values.  This may not be the case, however - on my system, the option was not honored until I set it to true.  This may also be the case with other options, so experiment a bit.  The output of tidy::getConfig() may be useful in this regard.
To Top