本文整理汇总了PHP中wcf\util\StringUtil::lastIndexOf方法的典型用法代码示例。如果您正苦于以下问题:PHP StringUtil::lastIndexOf方法的具体用法?PHP StringUtil::lastIndexOf怎么用?PHP StringUtil::lastIndexOf使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wcf\util\StringUtil
的用法示例。
在下文中一共展示了StringUtil::lastIndexOf方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getFileExtension
/**
* Returns the extension of the original file name.
*
* @return string
*/
public function getFileExtension() {
if (($position = StringUtil::lastIndexOf($this->getFilename(), '.')) !== false) {
return StringUtil::toLowerCase(StringUtil::substring($this->getFilename(), $position + 1));
}
return '';
}
示例2: import
/**
* Imports a style.
*
* @param string $filename
* @param integer $packageID
* @param StyleEditor $style
* @return StyleEditor
*/
public static function import($filename, $packageID = PACKAGE_ID, StyleEditor $style = null) {
// open file
$tar = new Tar($filename);
// get style data
$data = self::readStyleData($tar);
$styleData = array(
'styleName' => $data['name'],
'variables' => $data['variables'],
'styleVersion' => $data['version'],
'styleDate' => $data['date'],
'copyright' => $data['copyright'],
'license' => $data['license'],
'authorName' => $data['authorName'],
'authorURL' => $data['authorURL']
);
// create template group
$templateGroupID = 0;
if (!empty($data['templates'])) {
$templateGroupName = $originalTemplateGroupName = $data['name'];
$templateGroupFolderName = preg_replace('/[^a-z0-9_-]/i', '', $templateGroupName);
if (empty($templateGroupFolderName)) $templateGroupFolderName = 'generic'.StringUtil::substring(StringUtil::getRandomID(), 0, 8);
$originalTemplateGroupFolderName = $templateGroupFolderName;
// get unique template pack name
$i = 1;
while (true) {
$sql = "SELECT COUNT(*) AS count
FROM wcf".WCF_N."_template_group
WHERE templateGroupName = ?";
$statement = WCF::getDB()->prepareStatement($sql);
$statement->execute(array($templateGroupName));
$row = $statement->fetchArray();
if (!$row['count']) break;
$templateGroupName = $originalTemplateGroupName . '_' . $i;
$i++;
}
// get unique folder name
$i = 1;
while (true) {
$sql = "SELECT COUNT(*) AS count
FROM wcf".WCF_N."_template_group
WHERE templateGroupFolderName = ?
AND parentTemplatePackID = ?";
$statement = WCF::getDB()->prepareStatement($sql);
$statement->execute(array(
FileUtil::addTrailingSlash($templateGroupFolderName),
0
));
$row = $statement->fetchArray();
if (!$row['count']) break;
$templateGroupFolderName = $originalTemplateGroupFolderName . '_' . $i;
$i++;
}
$templateGroup = TemplateGroupEditor::create(array(
'templateGroupName' => $templateGroupName,
'templateGroupFolderName' => FileUtil::addTrailingSlash($templateGroupFolderName)
));
$styleData['templateGroupID'] = $templateGroup->templateGroupID;
}
// import preview image
if (!empty($data['image'])) {
$fileExtension = StringUtil::substring($data['image'], StringUtil::lastIndexOf($data['image'], '.'));
$index = $tar->getIndexByFilename($data['image']);
if ($index !== false) {
$filename = WCF_DIR.'images/stylePreview-'.$style->styleID.'.'.$fileExtension;
$tar->extract($index, $filename);
@chmod($filename, 0777);
if (file_exists($filename)) {
$styleData['image'] = $filename;
}
}
}
// import images
if (!empty($data['images']) && $data['imagesPath'] != 'images/') {
// create images folder if necessary
$imagesLocation = self::getFileLocation($data['imagesPath']);
$styleData['imagePath'] = FileUtil::getRelativePath(WCF_DIR, $imagesLocation);
$index = $tar->getIndexByFilename($data['images']);
if ($index !== false) {
// extract images tar
$destination = FileUtil::getTemporaryFilename('images_');
$tar->extract($index, $destination);
//.........这里部分代码省略.........
示例3: copy
/**
* Copies a style.
*
* @return array<string>
*/
public function copy() {
// get unique style name
$sql = "SELECT styleName
FROM wcf".WCF_N."_style
WHERE styleName LIKE ?
AND styleID <> ?";
$statement = WCF::getDB()->prepareStatement($sql);
$statement->execute(array(
$this->styleEditor->styleName.'%',
$this->styleEditor->styleID
));
$numbers = array();
$regEx = new Regex('\((\d+)\)$');
while ($row = $statement->fetchArray()) {
$styleName = $row['styleName'];
if ($regEx->match($styleName)) {
$matches = $regEx->getMatches();
// check if name matches the pattern 'styleName (x)'
if ($styleName == $this->styleEditor->styleName . ' ('.$matches[1].')') {
$numbers[] = $matches[1];
}
}
}
$number = (count($numbers)) ? max($numbers) + 1 : 2;
$styleName = $this->styleEditor->styleName . ' ('.$number.')';
// create the new style
$newStyle = StyleEditor::create(array(
'packageID' => PACKAGE_ID,
'styleName' => $styleName,
'templateGroupID' => $this->styleEditor->templateGroupID,
'isDisabled' => 1, // newly created styles are disabled by default
'styleDescription' => $this->styleEditor->styleDescription,
'styleVersion' => $this->styleEditor->styleVersion,
'styleDate' => $this->styleEditor->styleDate,
'copyright' => $this->styleEditor->copyright,
'license' => $this->styleEditor->license,
'authorName' => $this->styleEditor->authorName,
'authorURL' => $this->styleEditor->authorURL,
'imagePath' => $this->styleEditor->imagePath
));
// copy style variables
$sql = "INSERT INTO wcf".WCF_N."_style_variable_value
(styleID, variableID, variableValue)
SELECT ".$newStyle->styleID." AS styleID, value.variableID, value.variableValue
FROM wcf".WCF_N."_style_variable_value value
WHERE value.styleID = ?";
$statement = WCF::getDB()->prepareStatement($sql);
$statement->execute(array($this->styleEditor->styleID));
// copy preview image
if ($this->styleEditor->image) {
// get extension
$fileExtension = StringUtil::substring($this->styleEditor->image, StringUtil::lastIndexOf($this->styleEditor->image, '.'));
// copy existing preview image
if (@copy(WCF_DIR.'images/'.$this->styleEditor->image, WCF_DIR.'images/stylePreview-'.$newStyle->styleID.$fileExtension)) {
// bypass StyleEditor::update() to avoid scaling of already fitting image
$sql = "UPDATE wcf".WCF_N."_style
SET image = ?
WHERE styleID = ?";
$statement = WCF::getDB()->prepareStatement($sql);
$statement->execute(array(
'stylePreview-'.$newStyle->styleID.$fileExtension,
$newStyle->styleID
));
}
}
return array(
'redirectURL' => LinkHandler::getInstance()->getLink('StyleEdit', array('id' => $newStyle->styleID))
);
}