2

任何人都可以列出将 PHP_Beautifier 集成到 phped 中的步骤。

4

2 回答 2

4

您应该尝试此处的步骤。这些是集成任何将代码返回到编辑器的脚本的一般步骤。

步骤 5 中的注意事项:

<?php

$f = fopen("php://stdin", "r");
$s = fread($f, 100000); // should be big enough
fclose($f);
echo "\"" . $s . "\"";

?>

这应该被忽略并且非常草率。它类似于此处发布的其他 PHPed 脚本的格式。

现在要了解如何实际使用 PHP_beautifier,请参阅文档

引用文档:

  // Create the instance
  $oBeautifier = new PHP_Beautifier(); 

  /* snip optional stuff*/

  // Define the input file
  $oBeautifier->setInputFile(__FILE__); 

  // Define an output file.
  // $oBeautifier->setOutputFile(__FILE__.'.beautified.php');  No need for this

  // Process the file. DON'T FORGET TO USE IT
  $oBeautifier->process();

  // Show the file (echo to screen)
  $oBeautifier->show();

  // Save the file
  //$oBeautifier->save(); No Need for this.

好的,所以我们需要给它一个文件,但是我查看了主要的 Beautifier.php 文件,它似乎以某种方式接受了 STDIN。所以让我们编写脚本:

<?php

class BeautifyCode
{

    public function run()
    {
        require_once('path/to/Beautifier.php'); // It's the main file in the PEAR package

        // Create the instance
        $oBeautifier = new PHP_Beautifier();

        // Define the input file
        // I believe you leave blank for STDIN, looking through the code **
        $oBeautifier->setInputFile();
        // If that doesn't work try:
        // $oBeautifier->setInputFile('php://stdin');

        $oBeautifier->process();

        $oBeautifier->show();

        // If that doesn't work, try this:
        // echo utf8_decode($oBeautifier->get());
    }

}

$bc = new BeautifyCode;
$bc->run();

?>

所以把它保存为一个PHP文件,然后根据第一个链接的第3步调用它。我会安全使用@php5@,因为 PHP_beautifier 可能需要它。

我提前道歉,我不确定 PHP_beautifier 如何处理 STDIN 输入。我查看了代码,但无法确定。另一种选择是始终先保存您正在清理的 PHP 文件,然后查看 phpED 文档以了解如何获取您已打开并正在清理的 PHP 文件的路径。

如果我有更多时间浏览 PHP_beautifier 包,我可以给出更明确的答案。

于 2009-07-12T12:20:58.710 回答
0

您可以使用 STDIN 和 STDOUT 作为输入或输出

    // Create the instance
    $oBeautifier = new PHP_Beautifier();

    // Define the input file
    // I believe you leave blank for STDIN, looking through the code **
    $oBeautifier->setInputFile(STDIN);
    $oBeautifier->setOutputFile(STDOUT);
    $oBeaut->process();
    $oBeaut->save();
于 2010-03-15T20:18:37.753 回答