it-swarm.com.de

_getTab () gibt Leerzeichen zurück

Warum gibt der folgende Code zwei Leerzeichen anstelle eines Tabulators zurück? Wie kann ich diese Einstellung einfach ändern?

$document = JFactory::getDocument();
$tab = $document->_getTab();

Referenz

2
pl71

In protected static function createDocument(), das sich innerhalb von libraries/joomla/factory.php Befindet, sind zwei Leerzeichen fest codiert:

$attributes = array(
        'charset' => 'utf-8',
        'lineend' => 'unix',
        'tab' => '  ',
        'language' => $lang->getTag(),
        'direction' => $lang->isRTL() ? 'rtl' : 'ltr',
        'mediaversion' => $version->getMediaVersion()
    );

dies überschreibt die vorherige Klasseneigenschaftsdeklaration von \11 in libraries/joomla/document/document.php und alle Zeilen im Kopfabschnitt werden mit 2 Leerzeichen eingerückt.

3
pl71

Wenn Sie die Methodendokumentation lesen, macht es genau das, was es soll. In diesem Fall wird der Systemstandard für die Anzahl der Leerzeichen zurückgegeben, die ein Tastaturtabulatorereignis enthält.

Nachfolgend sehen Sie die Methode aus der JDocument-Klasse:

/**
 * Returns a string containing the unit for indenting HTML
 *
 * @return  string
 *
 * @since   11.1
 */
public function _getTab()
{
    return $this->_tab;
}

Und die Klasseneigenschaft für $ _tab:

/**
 * Tab string
 *
 * @var    string
 * @since  11.1
 */
public $_tab = "\11";

Unter Verwendung des oben Gesagten und unter Bezugnahme auf die PHP Documents for Escape Sequences im Text sehen wir einen Verweis auf die genaue Zeichenfolge:

\11
might be a back reference, or another way of writing a tab

Sie können den folgenden Link für weitere Informationen besuchen, aber die betreffende Methode gibt die PHP Escape-Sequenz für eine Registerkarte zurück.

http://php.net/manual/en/regexp.reference.escape.php

2
Brian Bolli