本文整理汇总了PHP中StringHelper::asciiString方法的典型用法代码示例。如果您正苦于以下问题:PHP StringHelper::asciiString方法的具体用法?PHP StringHelper::asciiString怎么用?PHP StringHelper::asciiString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringHelper
的用法示例。
在下文中一共展示了StringHelper::asciiString方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: generateHandle
public static function generateHandle($sourceVal)
{
// Remove HTML tags
$handle = preg_replace('/<(.*?)>/', '', $sourceVal);
// Remove inner-word punctuation
$handle = preg_replace('/[\'"‘’“”\\[\\]\\(\\)\\{\\}:]/', '', $handle);
// Make it lowercase
$handle = strtolower($handle);
// Convert extended ASCII characters to basic ASCII
$handle = StringHelper::asciiString($handle);
// Handle must start with a letter
$handle = preg_replace('/^[^a-z]+/', '', $handle);
// Get the "words"
$words = array_filter(preg_split('/[^a-z0-9]+/', $handle));
$handle = '';
// Make it camelCase
for ($i = 0; $i < count($words); $i++) {
if ($i == 0) {
$handle .= $words[$i];
} else {
$handle .= strtoupper($words[$i][0]) . substr($words[$i], 1);
}
}
return $handle;
}
示例2: _makeHandle
/**
* Make handle from source name.
*
* @param $name
*
* @return string
*/
private function _makeHandle($name, $sourceId)
{
// Remove HTML tags
$handle = preg_replace('/<(.*?)>/', '', $name);
$handle = preg_replace('/<[\'"‘’“”\\[\\]\\(\\)\\{\\}:]>/', '', $handle);
$handle = StringHelper::toLowerCase($handle);
$handle = StringHelper::asciiString($handle);
$handle = preg_replace('/^[^a-z]+/', '', $handle);
// In case it was an all non-ASCII handle, have a default.
if (!$handle) {
$handle = 'source' . $sourceId;
}
$handleParts = preg_split('/[^a-z0-9]+/', $handle);
$handle = '';
foreach ($handleParts as $index => &$part) {
if ($index) {
$part = ucfirst($part);
}
$handle .= $part;
}
$appendix = '';
while (true) {
$taken = craft()->db->createCommand()->select('handle')->from('assetsources')->where('handle = :handle', array(':handle' => $handle . $appendix))->queryScalar();
if ($taken) {
$appendix = (int) $appendix + 1;
} else {
break;
}
}
return $handle . $appendix;
}
示例3: setValidSlug
/**
* Sets a valid slug on a given element.
*
* @param BaseElementModel $element
*
* @return null
*/
public static function setValidSlug(BaseElementModel $element)
{
$slug = $element->slug;
if (!$slug) {
// Create a slug for them, based on the element's title.
// Replace periods, underscores, and hyphens with spaces so they get separated with the slugWordSeparator
// to mimic the default JavaScript-based slug generation.
$slug = str_replace(array('.', '_', '-'), ' ', $element->title);
// Enforce the limitAutoSlugsToAscii config setting
if (craft()->config->get('limitAutoSlugsToAscii')) {
$slug = StringHelper::asciiString($slug);
}
}
$element->slug = static::createSlug($slug);
}
示例4: backupAllForms
/**
* Backup All Forms
*/
public function backupAllForms()
{
$forms = FormBuilder2_FormRecord::model()->ordered()->findAll();
$table = 'craft_formbuilder2_forms';
if ($forms) {
$this->_currentVersion = 'v' . craft()->getVersion() . '.' . craft()->getBuild();
$siteName = IOHelper::cleanFilename(StringHelper::asciiString(craft()->getSiteName()));
$fileName = ($siteName ? $siteName . '_' : '') . gmdate('ymd_His') . '_' . $this->_currentVersion . '.sql';
$this->_filePath = craft()->path->getDbBackupPath() . StringHelper::toLowerCase($fileName);
$this->_processHeader();
$results = $this->_processResult($table);
$this->_processConstraints();
$this->_processFooter();
$filepath = $this->_filePath;
$this->_processFile($fileName, $filepath);
} else {
return false;
}
}
示例5: run
/**
* Triggers the database backup including all DML and DDL and writes it out to a file.
*
* @return string The path to the database backup file.
*/
public function run()
{
// Normalize the ignored table names if there is a table prefix set.
if (($tablePrefix = craft()->config->get('tablePrefix', ConfigFile::Db)) !== '') {
foreach ($this->_ignoreDataTables as $key => $tableName) {
$this->_ignoreDataTables[$key] = $tablePrefix . '_' . $tableName;
}
}
$this->_currentVersion = 'v' . craft()->getVersion() . '.' . craft()->getBuild();
$siteName = IOHelper::cleanFilename(StringHelper::asciiString(craft()->getSiteName()));
$fileName = ($siteName ? $siteName . '_' : '') . gmdate('ymd_His') . '_' . $this->_currentVersion . '.sql';
$this->_filePath = craft()->path->getDbBackupPath() . StringHelper::toLowerCase($fileName);
$this->_processHeader();
foreach (craft()->db->getSchema()->getTables() as $resultName => $val) {
$this->_processResult($resultName);
}
$this->_processConstraints();
$this->_processFooter();
return $this->_filePath;
}
示例6: _generateEntrySlug
/**
* Generates an entry slug based on its title.
*
* @access private
* @param EntryModel $entry
*/
private function _generateEntrySlug(EntryModel $entry)
{
$slug = $entry->slug ? $entry->slug : $entry->getTitle();
// Remove HTML tags
$slug = preg_replace('/<(.*?)>/', '', $slug);
// Remove apostrophes
$slug = str_replace(array('\'', '’'), array('', ''), $slug);
// Make it lowercase
$slug = strtolower($slug);
// Convert extended ASCII characters to basic ASCII
$slug = StringHelper::asciiString($slug);
// Slug must start and end with alphanumeric characters
$slug = preg_replace('/^[^a-z0-9]+/', '', $slug);
$slug = preg_replace('/[^a-z0-9]+$/', '', $slug);
// Get the "words"
$words = preg_split('/[^a-z0-9]+/', $slug);
$words = ArrayHelper::filterEmptyStringsFromArray($words);
$slug = implode('-', $words);
if ($slug) {
// Make it unique
$conditions = array('and', 'sectionId = :sectionId', 'locale = :locale', 'slug = :slug');
$params = array(':sectionId' => $entry->sectionId, ':locale' => $entry->locale);
if ($entry->id) {
$conditions[] = 'id != :entryId';
$params[':entryId'] = $entry->id;
}
for ($i = 0; true; $i++) {
$testSlug = $slug . ($i != 0 ? "-{$i}" : '');
$params[':slug'] = $testSlug;
$totalEntries = craft()->db->createCommand()->select('count(id)')->from('entries_i18n')->where($conditions, $params)->queryScalar();
if ($totalEntries == 0) {
break;
}
}
$entry->slug = $testSlug;
} else {
$entry->slug = '';
}
}
示例7: cleanFilename
/**
* Cleans a filename.
*
* @param string $fileName The filename to clean.
* @param bool $onlyAscii Whether to only allow ASCII characters in the filename.
* @param string $separator The separator to use for any whitespace. Defaults to '-'.
*
* @return mixed
*/
public static function cleanFilename($fileName, $onlyAscii = false, $separator = '-')
{
$disallowedChars = array('—', '–', '‘', '’', '“', '”', '–', '—', '+', '%', '^', '~', '?', '[', ']', '/', '\\', '=', '<', '>', ':', ';', ',', '\'', '"', '&', '$', '#', '*', '(', ')', '|', '~', '`', '!', '{', '}');
// Replace any control characters in the name with a space.
$fileName = preg_replace("#\\x{00a0}#siu", ' ', $fileName);
// Strip any characters not allowed.
$fileName = str_replace($disallowedChars, '', strip_tags($fileName));
if (!is_null($separator)) {
$fileName = preg_replace('/(\\s|' . preg_quote($separator) . ')+/', $separator, $fileName);
}
// Nuke any trailing or leading .-_
$fileName = trim($fileName, '.-_');
$fileName = $onlyAscii ? StringHelper::asciiString($fileName) : $fileName;
return $fileName;
}
示例8: _getPathsForUrl
/**
* Get paths for an external file (really external, or on an external source type)
*
* @param $image
* @throws Exception
*/
private function _getPathsForUrl($image)
{
$convertedImageStr = StringHelper::asciiString(urldecode($image));
$urlParts = parse_url($convertedImageStr);
$pathParts = pathinfo($urlParts['path']);
$hashRemoteUrl = craft()->imager->getSetting('hashRemoteUrl');
$hashPath = craft()->imager->getSetting('hashPath');
if ($hashPath) {
$targetFolder = '/' . md5($pathParts['dirname']);
} else {
$targetFolder = $pathParts['dirname'];
}
if ($hashRemoteUrl) {
if (is_string($hashRemoteUrl) && $hashRemoteUrl == 'host') {
$parsedDirname = substr(md5($urlParts['host']), 0, 10) . $targetFolder;
} else {
$parsedDirname = md5($urlParts['host'] . $pathParts['dirname']);
}
} else {
$parsedDirname = str_replace('.', '_', $urlParts['host']) . $targetFolder;
}
$this->sourcePath = craft()->path->getRuntimePath() . 'imager/' . $parsedDirname . '/';
$this->targetPath = craft()->imager->getSetting('imagerSystemPath') . $parsedDirname . '/';
$this->targetUrl = craft()->imager->getSetting('imagerUrl') . $parsedDirname . '/';
$this->sourceFilename = $this->targetFilename = str_replace(' ', '-', $pathParts['basename']);
// check if the temp path for remote files exists or can be created.
if (!IOHelper::getRealPath($this->sourcePath)) {
IOHelper::createFolder($this->sourcePath, craft()->config->get('defaultFolderPermissions'), true);
if (!IOHelper::getRealPath($this->sourcePath)) {
throw new Exception(Craft::t('Temp folder “{sourcePath}” does not exist and could not be created', array('sourcePath' => $this->sourcePath)));
}
}
// check if the file is already downloaded
if (!IOHelper::fileExists($this->sourcePath . $this->sourceFilename) || craft()->imager->getSetting('cacheDurationRemoteFiles') !== false && IOHelper::getLastTimeModified($this->sourcePath . $this->sourceFilename)->format('U') + craft()->imager->getSetting('cacheDurationRemoteFiles') < time()) {
$this->_downloadFile($this->sourcePath . $this->sourceFilename, $image);
if (!IOHelper::fileExists($this->sourcePath . $this->sourceFilename)) {
throw new Exception(Craft::t('File could not be downloaded and saved to “{sourcePath}”', array('sourcePath' => $this->sourcePath)));
}
}
}
示例9: cleanFilename
/**
* Clean a filename.
*
* @param $fileName
* @return mixed
*/
public static function cleanFilename($fileName)
{
$fileName = StringHelper::asciiString(ltrim($fileName, '.'));
return preg_replace('/[^@a-z0-9\\-_\\.]/i', '_', str_replace(chr(0), '', $fileName));
}