本文整理汇总了PHP中StringUtil::endsWith方法的典型用法代码示例。如果您正苦于以下问题:PHP StringUtil::endsWith方法的具体用法?PHP StringUtil::endsWith怎么用?PHP StringUtil::endsWith使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringUtil
的用法示例。
在下文中一共展示了StringUtil::endsWith方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getUniqueFileNameWithinTarget
/**
* Get a unique filename within given target folder, remove uniqid() suffix from file (optional, add $strPrefix) and append file count by name to
* file if file with same name already exists in target folder
*
* @param string $strTarget The target file path
* @param string $strPrefix A uniqid prefix from the given target file, that was added to the file before and should be removed again
* @param $i integer Internal counter for recursion usage or if you want to add the number to the file
*
* @return string | false The filename with the target folder and unique id or false if something went wrong (e.g. target does not exist)
*/
public static function getUniqueFileNameWithinTarget($strTarget, $strPrefix = null, $i = 0)
{
$objFile = new \File($strTarget, true);
$strTarget = ltrim(str_replace(TL_ROOT, '', $strTarget), '/');
$strPath = str_replace('.' . $objFile->extension, '', $strTarget);
if ($strPrefix && ($pos = strpos($strPath, $strPrefix)) !== false) {
$strPath = str_replace(substr($strPath, $pos, strlen($strPath)), '', $strPath);
$strTarget = $strPath . '.' . $objFile->extension;
}
// Create the parent folder
if (!file_exists($objFile->dirname)) {
$objFolder = new \Folder(ltrim(str_replace(TL_ROOT, '', $objFile->dirname), '/'));
// something went wrong with folder creation
if ($objFolder->getModel() === null) {
return false;
}
}
if (file_exists(TL_ROOT . '/' . $strTarget)) {
// remove suffix
if ($i > 0 && StringUtil::endsWith($strPath, '_' . $i)) {
$strPath = rtrim($strPath, '_' . $i);
}
// increment counter & add extension again
$i++;
// for performance reasons, add new unique id to path to make recursion come to end after 100 iterations
if ($i > 100) {
return static::getUniqueFileNameWithinTarget(static::addUniqIdToFilename($strPath . '.' . $objFile->extension, null, false));
}
return static::getUniqueFileNameWithinTarget($strPath . '_' . $i . '.' . $objFile->extension, $strPrefix, $i);
}
return $strTarget;
}
示例2: __construct
/**
* @param string|array $mConfig navigation name/navigation config
* each navigation part needs configuration in section called 'navigation' in the site/config/config.yml
* @return void
* @throws Exception on missing configuration
*/
public function __construct($mConfig, $sLinkPrefix = null, $sTemplatesDir = null)
{
if ($sTemplatesDir === null) {
$this->sTemplatesDir = array(DIRNAME_TEMPLATES, DIRNAME_NAVIGATION);
} else {
$this->sTemplatesDir = $sTemplatesDir;
}
if (is_string($mConfig)) {
$this->aConfig = Settings::getSetting("navigations", $mConfig, null);
$this->sNavigationName = $mConfig;
} else {
if (is_array($mConfig)) {
$this->aConfig = $mConfig;
}
}
if ($this->aConfig === null) {
throw new Exception("Navigation {$mConfig} not configured");
}
if ($sLinkPrefix === null) {
$sLinkPrefix = LinkUtil::link();
}
if (!StringUtil::endsWith($sLinkPrefix, "/")) {
$sLinkPrefix .= "/";
}
$this->sLinkPrefix = $sLinkPrefix;
$this->iMaxLevel = max(array_keys($this->aConfig));
if (!is_numeric($this->iMaxLevel) || isset($this->aConfig['all'])) {
$this->iMaxLevel = null;
}
$this->bShowOnlyEnabledChildren = isset($this->aConfig["show_inactive"]) ? $this->aConfig["show_inactive"] !== true : true;
$this->bShowOnlyVisibleChildren = isset($this->aConfig["show_hidden"]) ? $this->aConfig["show_hidden"] !== true : true;
$this->bExcludeDuplicates = isset($this->aConfig["exclude_duplicates"]) ? $this->aConfig["exclude_duplicates"] === true : false;
$this->bPrintNewline = isset($this->aConfig["no_newline"]) ? $this->aConfig["no_newline"] !== true : true;
$this->sLanguageId = isset($this->aConfig["language"]) ? $this->aConfig["language"] : Session::language();
}
示例3: callNestedGetter
/**
* $value = callNestedGetter($person, "name.firstName")
*/
public static function callNestedGetter($object, $nestedProperty)
{
StringUtil::checkTypes($nestedProperty);
if ($nestedProperty === "") {
return $object;
}
$properties = explode(".", $nestedProperty);
if (empty($properties) || !is_object($object)) {
throw new InvalidTypeException("Should be called on object");
}
foreach ($properties as $property) {
if (is_null($object)) {
throw new NullPointerException();
}
$className = get_class($object);
$isListItem = StringUtil::endsWith($property, ")");
$strippedProperty = $isListItem ? substr($property, 0, strpos($property, "(")) : $property;
try {
$getterMethod = new ReflectionMethod($className, StringUtil::getter($strippedProperty));
} catch (ReflectionException $e) {
try {
$getterMethod = new ReflectionMethod($className, StringUtil::boolGetter($strippedProperty));
} catch (ReflectionException $e) {
throw new MethodNotExistsException($className, StringUtil::getter($strippedProperty));
}
}
$object = $getterMethod->invoke($object);
if ($isListItem) {
$index = StringUtil::getSubstringBetween($property, "(", ")");
$object = $object[$index];
}
}
return $object;
}
示例4: nullifyEmptyParams
private static function nullifyEmptyParams(&$params)
{
foreach ($params as $key => $value) {
if ($value === '' && StringUtil::endsWith($key, '_value')) {
unset($params[$key]);
}
}
}
示例5: suite
public static function suite()
{
$oResult = new PHPUnit_Framework_TestSuite("ResourceFinder test suite");
foreach (ResourceFinder::getFolderContents(dirname(__FILE__)) as $sFileName => $sFilePath) {
if (StringUtil::endsWith($sFileName, "Tests.php") && (StringUtil::startsWith($sFileName, "ResourceFinder") || StringUtil::startsWith($sFileName, "FileResource") || StringUtil::startsWith($sFileName, "ResourceIncluder"))) {
$oResult->addTestFile($sFilePath);
}
}
return $oResult;
}
示例6: suite
public static function suite()
{
$oResult = new PHPUnit_Framework_TestSuite("Complete test suite");
foreach (ResourceFinder::getFolderContents(dirname(__FILE__)) as $sFileName => $sFilePath) {
if (StringUtil::endsWith($sFileName, ".php") && StringUtil::startsWith($sFileName, "Test") && !StringUtil::startsWith($sFileName, "TestUtil") && $sFilePath !== __FILE__) {
require_once $sFilePath;
$oResult->addTest(call_user_func(array(substr($sFileName, 0, -strlen('.php')), "suite")));
}
}
return $oResult;
}
示例7: getFieldValues
private static function getFieldValues($instance, $fields)
{
$values = array();
foreach ($fields as $field) {
if (StringUtil::endsWith(strtolower($field->get('@type')), 'combo')) {
$values[$field->get('@name') . '_value'] = $field->get('@selected', null);
} else {
$values[$field->get('@name')] = afEditView::getFieldValue($field, $instance);
}
}
return $values;
}
示例8: assertDir
/**
* @param $name name of variable to check, for error message
* @throws \InvalidArgumentException if $dir is not a string pointing to an existing directory
* @return absolute path for given string, using forward slashes, ending with a slash.
*/
public static function assertDir($var, $name)
{
self::assertString($var, $name);
$dir = str_replace('\\', '/', realpath($var));
if (!is_dir($dir)) {
throw new \InvalidArgumentException($name . ' must be an existing directory, but is ' . $var);
}
if (!StringUtil::endsWith($dir, '/')) {
$dir .= '/';
}
return $dir;
}
示例9: getTemplateList
/**
* Scan the $PAGE_TEMPLATE_PATH dir and return the list of file finished by $TEMPLATE_SUFFIX
* @return multitype:unknown
*/
public static function getTemplateList()
{
$fileList = scandir(TemplateUtil::getPageTemplateAbsolutePath());
$templateList = array();
//Filter
foreach ($fileList as $file) {
if (StringUtil::endsWith($file, TemplateUtil::getTemplateSuffix())) {
$templateList[$file] = $file;
}
}
return $templateList;
}
示例10: collectOptions
private static function collectOptions($params)
{
$options = array();
$messages = array();
foreach ($params as $key => $param) {
if (StringUtil::endsWith($key, '_error')) {
$messages[preg_replace('/_error$/', '', $key)] = $param;
} else {
$options[$key] = $param === 'false' ? false : $param;
}
}
return array($options, $messages);
}
示例11: getPatches
function getPatches($dir, $after)
{
$result = array();
if ($dirHandle = opendir($dir)) {
while (($fileName = readdir($dirHandle)) !== false) {
if (preg_match(PATCH_REGEXP, $fileName) && stripExtension($fileName) > $after && !StringUtil::endsWith($fileName, '~')) {
$result[] = $fileName;
}
}
closedir($dirHandle);
sort($result);
}
return $result;
}
示例12: loadFromBackup
public function loadFromBackup($sFileName = null)
{
$sFilePath = ResourceFinder::findResource(array(DIRNAME_DATA, 'sql', $sFileName));
$oConnection = Propel::getConnection();
$bFileError = false;
if ($sFilePath === null) {
$bFileError = true;
}
if (!$bFileError) {
if (!is_readable($sFilePath)) {
$bFileError = true;
}
if (!$bFileError) {
$rFile = fopen($sFilePath, 'r');
if (!$rFile) {
$bFileError = true;
}
}
}
// throw error and filename on error
if ($bFileError) {
throw new LocalizedException('wns.backup.loader.load_error', array('filename' => $sFilePath));
}
// continue importing from local file
$sStatement = "";
$sReadLine = "";
$iQueryCount = 1;
while (($sReadLine = fgets($rFile)) !== false) {
if ($sReadLine !== "\n" && !StringUtil::startsWith($sReadLine, "#") && !StringUtil::startsWith($sReadLine, "--")) {
$sStatement .= $sReadLine;
}
if ($sReadLine === "\n" || StringUtil::endsWith($sReadLine, ";\n")) {
if (trim($sStatement) !== "") {
$oConnection->exec($sStatement);
$iQueryCount++;
}
$sStatement = "";
}
}
if (trim($sStatement) !== "") {
$oConnection->exec($sStatement);
}
Cache::clearAllCaches();
return $iQueryCount;
}
示例13: __construct
/**
* Used to create FileResource instances. ResourceFinder will call this with given full path, instance prefix, relative path;
* other uses will likely let the function figure out instance prefix and relative path.
* Setting relative path to non-null and instance prefix null is not allowed.
* Setting instance prefix but not relative path is redundant.
* @param string $sFullPath The absolute file path
* @param string $sInstancePrefix The part of the CMS’ folder which this file belongs to (base, site or plugins/*); includes trailing slash
* @param string $sRelativePath The file path following the instance prefix. There can be multiple files in the installation with the same relative paths if the instance prefix differs.
*/
public function __construct($sFullPath, $sInstancePrefix = null, $sRelativePath = null)
{
if (file_exists($sFullPath)) {
if (($sRealPath = realpath($sFullPath)) === false) {
throw new Exception("File resource does not have the permissions for realpath({$sFullPath})");
}
$sFullPath = $sRealPath;
}
if ($sInstancePrefix !== null && !StringUtil::endsWith($sInstancePrefix, '/')) {
$sInstancePrefix .= '/';
}
if ($sRelativePath === null) {
if (strpos($sFullPath, self::mainDirCanonical()) !== 0) {
throw new Exception("Tried to instanciate file resource {$sFullPath}, which is not inside main dir (" . self::mainDirCanonical() . ")");
}
//Also remove leading slash
$sRelativePath = substr($sFullPath, strlen(self::mainDirCanonical()) + 1);
$sPreviousRelativePath = $sRelativePath;
$sTempInstancePrefix = '';
do {
if (strpos($sRelativePath, '/') === false) {
$sTempInstancePrefix = '';
$sRelativePath = $sPreviousRelativePath;
break;
}
$sTempInstancePrefix .= substr($sRelativePath, 0, strpos($sRelativePath, '/') + 1);
if ($sInstancePrefix !== null && $sTempInstancePrefix !== $sInstancePrefix) {
throw new Exception("Error in FileResource::__construct(): Supplied instance prefix {$sInstancePrefix} does not match supplied path’s {$sTempInstancePrefix}");
}
$sRelativePath = substr($sPreviousRelativePath, strlen($sTempInstancePrefix));
} while ($sTempInstancePrefix === 'plugins/');
$sInstancePrefix = $sTempInstancePrefix;
}
$this->sFullPath = $sFullPath;
$this->sInstancePrefix = $sInstancePrefix;
$this->sRelativePath = $sRelativePath;
}
示例14: regenerateLongInfinitive
public function regenerateLongInfinitive()
{
$infl = Inflection::loadLongInfinitive();
$f107 = FlexModel::get_by_modelType_number('F', '107');
$f113 = FlexModel::get_by_modelType_number('F', '113');
// Iterate through all the participle forms of this Lexem
foreach ($this->getLexemModels() as $lm) {
$ifs = InflectedForm::get_all_by_lexemModelId_inflectionId($lm->id, $infl->id);
foreach ($ifs as $if) {
$model = StringUtil::endsWith($if->formNoAccent, 'are') ? $f113 : $f107;
$lexem = Model::factory('Lexem')->select('l.*')->table_alias('l')->distinct()->join('LexemModel', 'l.id = lm.lexemId', 'lm')->where('l.formNoAccent', $if->formNoAccent)->where_raw("(lm.modelType = 'T' or (lm.modelType = 'F' and lm.modelNumber = '{$model->number}'))")->find_one();
if ($lexem) {
$infLm = $lexem->getFirstLexemModel();
if ($infLm->modelType != 'F' || $infLm->modelNumber != $model->number || $inf->restriction != '') {
$infLm->modelType = 'F';
$infLm->modelNumber = $model->number;
$infLm->restriction = '';
if ($this->isLoc() && !$infLm->isLoc) {
$infLm->isLoc = true;
FlashMessage::add("Lexemul {$lexem->formNoAccent}, care nu era în LOC, a fost inclus automat în LOC.", 'info');
}
$lexem->deepSave();
}
} else {
$lexem = Lexem::deepCreate($if->form, 'F', $model->number, '', $this->isLoc());
$lexem->deepSave();
// Also associate the new lexem with the same definitions as $this.
$ldms = LexemDefinitionMap::get_all_by_lexemId($this->id);
foreach ($ldms as $ldm) {
LexemDefinitionMap::associate($lexem->id, $ldm->definitionId);
}
FlashMessage::add("Am creat automat lexemul {$lexem->formNoAccent} (F{$model->number}) și l-am asociat cu toate definițiile verbului.", 'info');
}
}
}
}
示例15: getSiteTemplatesForListOutput
/**
* @param string $sPostfix string of template 'list item' identifier
* retrieve all templates from site template dir that follow a naming convention
* list template name: examplename.tmpl
* list_item template name: examplename_item.tmpl
* @return array assoc of path to examplename in key and value
*/
public static function getSiteTemplatesForListOutput($sPostfix = '_item')
{
$aTemplateList = ArrayUtil::arrayWithValuesAsKeys(Template::listTemplates(DIRNAME_TEMPLATES, true));
$aListTemplates = array();
foreach ($aTemplateList as $sPath => $sListName) {
if (StringUtil::endsWith($sListName, $sPostfix)) {
$sPath = substr($sListName, 0, -strlen($sPostfix));
$aListTemplates[$sPath] = $sPath;
}
}
foreach ($aListTemplates as $sListPath) {
if (!in_array($sListPath, $aTemplateList)) {
unset($aListTemplates[$sListPath]);
}
}
return $aListTemplates;
}