本文整理匯總了PHP中OC_Helper::is_function_enabled方法的典型用法代碼示例。如果您正苦於以下問題:PHP OC_Helper::is_function_enabled方法的具體用法?PHP OC_Helper::is_function_enabled怎麽用?PHP OC_Helper::is_function_enabled使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類OC_Helper
的用法示例。
在下文中一共展示了OC_Helper::is_function_enabled方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: testGetFileSizeViaExec
public function testGetFileSizeViaExec()
{
if (!\OC_Helper::is_function_enabled('exec')) {
$this->markTestSkipped('The exec() function needs to be enabled for this test.');
}
$this->assertSame($this->fileSize, $this->helper->getFileSizeViaExec($this->filename));
}
示例2: findBinaryPath
/**
* Try to find a programm
*
* @param string $program
* @return null|string
*/
function findBinaryPath($program)
{
if (OC_Helper::is_function_enabled('exec')) {
exec('command -v ' . escapeshellarg($program) . ' 2> /dev/null', $output, $returnCode);
if ($returnCode === 0 && count($output) > 0) {
return escapeshellcmd($output[0]);
}
}
return null;
}
示例3: getFileSizeViaExec
/**
* @brief Tries to get the size of a file via an exec() call.
*
* @param string $filename Path to the file.
*
* @return null|int|float Number of bytes as number (float or int) or
* null on failure.
*/
public function getFileSizeViaExec($filename)
{
if (\OC_Helper::is_function_enabled('exec')) {
$os = strtolower(php_uname('s'));
$arg = escapeshellarg($filename);
$result = null;
if (strpos($os, 'linux') !== false) {
$result = $this->exec("stat -c %s {$arg}");
} else {
if (strpos($os, 'bsd') !== false || strpos($os, 'darwin') !== false) {
$result = $this->exec("stat -f %z {$arg}");
} else {
if (strpos($os, 'win') !== false) {
$result = $this->exec("for %F in ({$arg}) do @echo %~zF");
if (is_null($result)) {
// PowerShell
$result = $this->exec("(Get-Item {$arg}).length");
}
}
}
}
return $result;
}
return null;
}
示例4: registerCoreProviders
/**
* Register the default providers (if enabled)
*/
protected function registerCoreProviders()
{
if ($this->registeredCoreProviders) {
return;
}
$this->registeredCoreProviders = true;
$this->registerCoreProvider('OC\\Preview\\TXT', '/text\\/plain/');
$this->registerCoreProvider('OC\\Preview\\MarkDown', '/text\\/(x-)?markdown/');
$this->registerCoreProvider('OC\\Preview\\PNG', '/image\\/png/');
$this->registerCoreProvider('OC\\Preview\\JPEG', '/image\\/jpeg/');
$this->registerCoreProvider('OC\\Preview\\GIF', '/image\\/gif/');
$this->registerCoreProvider('OC\\Preview\\BMP', '/image\\/bmp/');
$this->registerCoreProvider('OC\\Preview\\XBitmap', '/image\\/x-xbitmap/');
$this->registerCoreProvider('OC\\Preview\\MP3', '/audio\\/mpeg/');
// SVG, Office and Bitmap require imagick
if (extension_loaded('imagick')) {
$checkImagick = new \Imagick();
$imagickProviders = ['SVG' => ['mimetype' => '/image\\/svg\\+xml/', 'class' => '\\OC\\Preview\\SVG'], 'TIFF' => ['mimetype' => '/image\\/tiff/', 'class' => '\\OC\\Preview\\TIFF'], 'PDF' => ['mimetype' => '/application\\/pdf/', 'class' => '\\OC\\Preview\\PDF'], 'AI' => ['mimetype' => '/application\\/illustrator/', 'class' => '\\OC\\Preview\\Illustrator'], 'PSD' => ['mimetype' => '/application\\/x-photoshop/', 'class' => '\\OC\\Preview\\Photoshop'], 'EPS' => ['mimetype' => '/application\\/postscript/', 'class' => '\\OC\\Preview\\Postscript'], 'TTF' => ['mimetype' => '/application\\/(?:font-sfnt|x-font$)/', 'class' => '\\OC\\Preview\\Font']];
foreach ($imagickProviders as $queryFormat => $provider) {
$class = $provider['class'];
if (!in_array(trim($class, '\\'), $this->getEnabledDefaultProvider())) {
continue;
}
if (count($checkImagick->queryFormats($queryFormat)) === 1) {
$this->registerCoreProvider($class, $provider['mimetype']);
}
}
if (count($checkImagick->queryFormats('PDF')) === 1) {
// Office previews are currently not supported on Windows
if (!\OC_Util::runningOnWindows() && \OC_Helper::is_function_enabled('shell_exec')) {
$officeFound = is_string($this->config->getSystemValue('preview_libreoffice_path', null));
if (!$officeFound) {
//let's see if there is libreoffice or openoffice on this machine
$whichLibreOffice = shell_exec('command -v libreoffice');
$officeFound = !empty($whichLibreOffice);
if (!$officeFound) {
$whichOpenOffice = shell_exec('command -v openoffice');
$officeFound = !empty($whichOpenOffice);
}
}
if ($officeFound) {
$this->registerCoreProvider('\\OC\\Preview\\MSOfficeDoc', '/application\\/msword/');
$this->registerCoreProvider('\\OC\\Preview\\MSOffice2003', '/application\\/vnd.ms-.*/');
$this->registerCoreProvider('\\OC\\Preview\\MSOffice2007', '/application\\/vnd.openxmlformats-officedocument.*/');
$this->registerCoreProvider('\\OC\\Preview\\OpenDocument', '/application\\/vnd.oasis.opendocument.*/');
$this->registerCoreProvider('\\OC\\Preview\\StarOffice', '/application\\/vnd.sun.xml.*/');
}
}
}
}
// Video requires avconv or ffmpeg and is therefor
// currently not supported on Windows.
if (in_array('OC\\Preview\\Movie', $this->getEnabledDefaultProvider()) && !\OC_Util::runningOnWindows()) {
$avconvBinary = \OC_Helper::findBinaryPath('avconv');
$ffmpegBinary = $avconvBinary ? null : \OC_Helper::findBinaryPath('ffmpeg');
if ($avconvBinary || $ffmpegBinary) {
// FIXME // a bit hacky but didn't want to use subclasses
\OC\Preview\Movie::$avconvBinary = $avconvBinary;
\OC\Preview\Movie::$ffmpegBinary = $ffmpegBinary;
$this->registerCoreProvider('\\OC\\Preview\\Movie', '/video\\/.*/');
}
}
}
示例5: registerCoreProviders
protected static function registerCoreProviders()
{
self::registerProvider('OC\\Preview\\TXT');
self::registerProvider('OC\\Preview\\MarkDown');
self::registerProvider('OC\\Preview\\Image');
self::registerProvider('OC\\Preview\\MP3');
// SVG, Office and Bitmap require imagick
if (extension_loaded('imagick')) {
$checkImagick = new \Imagick();
$imagickProviders = array('SVG' => 'OC\\Preview\\SVG', 'TIFF' => 'OC\\Preview\\TIFF', 'PDF' => 'OC\\Preview\\PDF', 'AI' => 'OC\\Preview\\Illustrator', 'PSD' => 'OC\\Preview\\Photoshop', 'EPS' => 'OC\\Preview\\Postscript');
foreach ($imagickProviders as $queryFormat => $provider) {
if (count($checkImagick->queryFormats($queryFormat)) === 1) {
self::registerProvider($provider);
}
}
if (count($checkImagick->queryFormats('PDF')) === 1) {
// Office previews are currently not supported on Windows
if (!\OC_Util::runningOnWindows() && \OC_Helper::is_function_enabled('shell_exec')) {
$officeFound = is_string(\OC::$server->getConfig()->getSystemValue('preview_libreoffice_path', null));
if (!$officeFound) {
//let's see if there is libreoffice or openoffice on this machine
$whichLibreOffice = shell_exec('command -v libreoffice');
$officeFound = !empty($whichLibreOffice);
if (!$officeFound) {
$whichOpenOffice = shell_exec('command -v openoffice');
$officeFound = !empty($whichOpenOffice);
}
}
if ($officeFound) {
self::registerProvider('OC\\Preview\\MSOfficeDoc');
self::registerProvider('OC\\Preview\\MSOffice2003');
self::registerProvider('OC\\Preview\\MSOffice2007');
self::registerProvider('OC\\Preview\\OpenDocument');
self::registerProvider('OC\\Preview\\StarOffice');
}
}
}
}
// Video requires avconv or ffmpeg and is therefor
// currently not supported on Windows.
if (!\OC_Util::runningOnWindows()) {
$avconvBinary = \OC_Helper::findBinaryPath('avconv');
$ffmpegBinary = $avconvBinary ? null : \OC_Helper::findBinaryPath('ffmpeg');
if ($avconvBinary || $ffmpegBinary) {
// FIXME // a bit hacky but didn't want to use subclasses
\OC\Preview\Movie::$avconvBinary = $avconvBinary;
\OC\Preview\Movie::$ffmpegBinary = $ffmpegBinary;
self::registerProvider('OC\\Preview\\Movie');
}
}
}
示例6: Imagick
<?php
/**
* Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
//both, libreoffice backend and php fallback, need imagick
if (extension_loaded('imagick')) {
$checkImagick = new Imagick();
if (count($checkImagick->queryFormats('PDF')) === 1) {
$isShellExecEnabled = \OC_Helper::is_function_enabled('shell_exec');
// LibreOffice preview is currently not supported on Windows
if (!\OC_Util::runningOnWindows()) {
$whichLibreOffice = $isShellExecEnabled ? shell_exec('command -v libreoffice') : '';
$isLibreOfficeAvailable = !empty($whichLibreOffice);
$whichOpenOffice = $isShellExecEnabled ? shell_exec('command -v libreoffice') : '';
$isOpenOfficeAvailable = !empty($whichOpenOffice);
//let's see if there is libreoffice or openoffice on this machine
if ($isShellExecEnabled && ($isLibreOfficeAvailable || $isOpenOfficeAvailable || is_string(\OC_Config::getValue('preview_libreoffice_path', null)))) {
require_once 'office-cl.php';
}
}
}
}
示例7: getFileSizeFromOS
private static function getFileSizeFromOS($fullPath)
{
$name = strtolower(php_uname('s'));
// Windows OS: we use COM to access the filesystem
if (strpos($name, 'win') !== false) {
if (class_exists('COM')) {
$fsobj = new \COM("Scripting.FileSystemObject");
$f = $fsobj->GetFile($fullPath);
return $f->Size;
}
} else {
if (strpos($name, 'bsd') !== false) {
if (\OC_Helper::is_function_enabled('exec')) {
return (double) exec('stat -f %z ' . escapeshellarg($fullPath));
}
} else {
if (strpos($name, 'linux') !== false) {
if (\OC_Helper::is_function_enabled('exec')) {
return (double) exec('stat -c %s ' . escapeshellarg($fullPath));
}
} else {
\OC_Log::write('core', 'Unable to determine file size of "' . $fullPath . '". Unknown OS: ' . $name, \OC_Log::ERROR);
}
}
}
return 0;
}
示例8: findBinaryPath
* later.
* See the COPYING-README file.
*/
namespace OC\Preview;
function findBinaryPath($program)
{
exec('command -v ' . escapeshellarg($program) . ' 2> /dev/null', $output, $returnCode);
if ($returnCode === 0 && count($output) > 0) {
return escapeshellcmd($output[0]);
}
return null;
}
// movie preview is currently not supported on Windows
if (!\OC_Util::runningOnWindows()) {
$isExecEnabled = \OC_Helper::is_function_enabled('exec');
$ffmpegBinary = null;
$avconvBinary = null;
if ($isExecEnabled) {
$avconvBinary = findBinaryPath('avconv');
if (!$avconvBinary) {
$ffmpegBinary = findBinaryPath('ffmpeg');
}
}
if ($isExecEnabled && ($avconvBinary || $ffmpegBinary)) {
class Movie extends Provider
{
public static $avconvBinary;
public static $ffmpegBinary;
public function getMimeType()
{