次のコードが1つのタブではなく2つのスペースを返すのはなぜですか?この設定を簡単に変更するにはどうすればよいですか?
$document = JFactory::getDocument();
$tab = $document->_getTab();
_libraries/joomla/factory.php
_内にあるprotected static function createDocument()
に2つのスペースがハードコードされています。
_$attributes = array(
'charset' => 'utf-8',
'lineend' => 'unix',
'tab' => ' ',
'language' => $lang->getTag(),
'direction' => $lang->isRTL() ? 'rtl' : 'ltr',
'mediaversion' => $version->getMediaVersion()
);
_
_\11
_内の_libraries/joomla/document/document.php
_の以前のクラスプロパティ宣言をオーバーライドし、ヘッドセクションのすべての行が2つのスペースでインデントされます。
メソッドのドキュメントを読んだ場合、それはまさに想定通りのことをしています。キーボードタブイベントに含まれるスペースの数のシステムデフォルトを返します。
以下は、JDocumentクラスから取得したメソッドです。
/**
* Returns a string containing the unit for indenting HTML
*
* @return string
*
* @since 11.1
*/
public function _getTab()
{
return $this->_tab;
}
そして$ _tabのクラスプロパティ:
/**
* Tab string
*
* @var string
* @since 11.1
*/
public $_tab = "\11";
上記を使用して、PHP Documents for Escape Sequences in textを参照すると、正確な文字列への参照が表示されます。
\11
might be a back reference, or another way of writing a tab
詳細については、以下のリンクを参照してください。ただし、問題のメソッドは、タブのPHPエスケープシーケンスを返します。