本文整理汇总了PHP中yii\helpers\StringHelper::startsWith方法的典型用法代码示例。如果您正苦于以下问题:PHP StringHelper::startsWith方法的具体用法?PHP StringHelper::startsWith怎么用?PHP StringHelper::startsWith使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yii\helpers\StringHelper
的用法示例。
在下文中一共展示了StringHelper::startsWith方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getDiff
/**
* @inheritdoc
*/
public function getDiff($file = null)
{
$previewFile = [];
$ret = [];
$appendFileDiff = function () use(&$previewFile, &$ret) {
if (!empty($previewFile)) {
$ret[] = new Diff($previewFile);
$previewFile = [];
}
};
$fullDiff = [];
if (!is_null($file)) {
$fullDiff = $this->repository->getDiff(Repository::DIFF_PATH, $file, $this->id);
} else {
$fullDiff = $this->repository->getDiff(Repository::DIFF_COMMIT, $this->id);
}
foreach ($fullDiff as $row) {
if (StringHelper::startsWith($row, 'diff')) {
// the new file diff, append to $ret
$appendFileDiff();
}
$previewFile[] = $row;
}
// append last file diff to full array
$appendFileDiff();
return $ret;
}
示例2: actionIndex
public function actionIndex()
{
$actions = [];
$rc = new \ReflectionClass($this);
$publicMethods = $rc->getMethods(\ReflectionMethod::IS_PUBLIC);
$availableActions = [];
foreach ($publicMethods as $publicMethod) {
$methodName = $publicMethod->name;
if ($methodName == 'actions') {
continue;
}
if (StringHelper::startsWith($methodName, 'action')) {
$availableActions[] = $methodName;
}
}
if (count($this->actions()) > 0) {
$availableActions = $availableActions + array_keys($this->actions());
}
$menus = [];
foreach ($availableActions as $actionName) {
$routeId = Inflector::camel2id(substr($actionName, strlen('action')));
$menus[] = Html::a($actionName, [$routeId]);
}
echo implode('<br/>', $menus);
}
示例3: env
/**
* Gets the value of an environment variable. Supports boolean, empty and null.
*
* @param string $key
* @param mixed $default
* @return mixed
*/
function env($key, $default = null)
{
$value = getenv($key);
if ($value === false) {
return value($default);
}
switch (strtolower($value)) {
case 'true':
case '(true)':
return true;
case 'false':
case '(false)':
return false;
case 'empty':
case '(empty)':
return '';
case 'null':
case '(null)':
return;
}
if (strlen($value) > 1 && Str::startsWith($value, '"') && Str::endsWith($value, '"')) {
return substr($value, 1, -1);
}
return $value;
}
示例4: up
public function up()
{
$this->execute('ALTER TABLE galaxysss_1.gs_unions_office ADD category VARCHAR(100) NULL;');
$path = Yii::getAlias('@app/app/assets/1.xml');
$data = file_get_contents($path);
$x = new \DOMDocument();
$x->loadXML($data);
$ret = [];
/** @var \DOMElement $element */
foreach ($x->documentElement->childNodes as $element) {
if ($element instanceof \DOMElement) {
$data = $element->getAttribute('data-jmapping');
$pos = Str::pos('lat', $data);
$pos1 = Str::pos('lng', $data);
$lat = Str::sub($data, $pos + 5, $pos1 - $pos - 7);
$pos = Str::pos('lng', $data);
$pos1 = Str::pos('category', $data);
$lng = Str::sub($data, $pos + 5, $pos1 - $pos - 8);
$pos = Str::pos('category', $data);
$category = Str::sub($data, $pos + 11);
$category = Str::sub($category, 0, Str::length($category) - 2);
$category = explode('|', $category);
$list = $element->getElementsByTagName("p");
if ($list->length == 1) {
/** @var \DOMElement $content */
$content = $list->item(0);
$content = $x->saveXML($content);
$content = Str::sub($content, 3);
$content = Str::sub($content, 0, Str::length($content) - 4);
$content = explode('<br/>', $content);
$ret2 = [];
foreach ($content as $item) {
if (StringHelper::startsWith($item, '<b>')) {
$item = Str::sub($item, 3);
$item = Str::sub($item, 0, Str::length($item) - 4);
}
$ret2[] = trim($item);
}
$name = $ret2[0];
array_shift($ret2);
if (StringHelper::startsWith($ret2[count($ret2) - 1], 'Открытие')) {
$ret2 = array_reverse($ret2);
array_shift($ret2);
$ret2 = array_reverse($ret2);
}
if (StringHelper::startsWith($ret2[count($ret2) - 1], '"ВкусВилл')) {
$ret2 = array_reverse($ret2);
array_shift($ret2);
$ret2 = array_reverse($ret2);
}
$address = $ret2[0];
array_shift($ret2);
$ret[] = [392, $address, $name, $lat, $lng, join('|', $category), Html::tag('p', join('<br/>', $ret2))];
}
}
}
$this->batchInsert('gs_unions_office', ['union_id', 'point_address', 'name', 'point_lat', 'point_lng', 'category', 'content'], $ret);
}
示例5: __get
public function __get($name)
{
if (\yii\helpers\StringHelper::startsWith($name, 'id')) {
$id = (int) substr($name, 2);
if (is_null($this->id)) {
return null;
}
return \yii\helpers\ArrayHelper($this->id, $id, null);
}
}
示例6: actionIndex
/**
* @hass-todo
*/
public function actionIndex()
{
$namespaces = \HassClassLoader::getHassCoreFile();
$result = [];
foreach ($namespaces as $namespace => $dir) {
$controllerDir = $dir . DIRECTORY_SEPARATOR . "controllers";
if (!is_dir($controllerDir)) {
continue;
}
$files = FileHelper::findFiles($controllerDir);
$moduleId = trim(substr($namespace, strrpos(rtrim($namespace, "\\"), "\\")), "\\");
$result[$moduleId]["module"] = $moduleId;
$result[$moduleId]["permissions"] = [];
foreach ($files as $file) {
$childDir = rtrim(pathinfo(substr($file, strpos($file, "controllers") + 12), PATHINFO_DIRNAME), ".");
if ($childDir) {
$class = $namespace . "controllers\\" . str_replace("/", "\\", $childDir) . "\\" . rtrim(basename($file), ".php");
} else {
$class = $namespace . "controllers\\" . rtrim(basename($file), ".php");
}
$controllerId = Inflector::camel2id(str_replace("Controller", "", pathinfo($file, PATHINFO_FILENAME)));
$reflect = new \ReflectionClass($class);
$methods = $reflect->getMethods(\ReflectionMethod::IS_PUBLIC);
/** @var \ReflectionMethod $method */
foreach ($methods as $method) {
if (!StringHelper::startsWith($method->name, "action")) {
continue;
}
if ($method->name == "actions") {
$object = \Yii::createObject(["class" => $class], [$controllerId, $moduleId]);
$actions = $method->invoke($object);
foreach ($actions as $actionId => $config) {
$route = $moduleId . "/" . $controllerId . "/" . $actionId;
if ($childDir) {
$route = $moduleId . "/" . $childDir . "/" . $controllerId . "/" . $actionId;
}
$result[$moduleId]["permissions"][$route] = ["type" => Item::TYPE_PERMISSION, "description" => $controllerId . "-" . Inflector::camel2words($actionId)];
}
continue;
}
$actionId = Inflector::camel2id(substr($method->name, 6));
$route = $moduleId . "/" . $controllerId . "/" . $actionId;
if ($childDir) {
$route = $moduleId . "/" . $childDir . "/" . $controllerId . "/" . $actionId;
}
$result[$moduleId]["permissions"][$route] = ["type" => Item::TYPE_PERMISSION, "description" => $controllerId . "-" . Inflector::camel2words(substr($method->name, 6))];
}
}
}
$result["super"] = ['module' => 'SUPER_PERMISSION', 'permissions' => array(\hass\rbac\Module::SUPER_PERMISSION => array('type' => Item::TYPE_PERMISSION, 'description' => 'SUPER_PERMISSION'))];
$result = "<?php \n return " . var_export($result, true) . ";";
file_put_contents(dirname(__DIR__) . "/permissions.php", $result);
return $this->render("index");
}
示例7: __construct
/**
* Constructor
*
* @param string $pathName
* @param BaseRepository $repository
* @param string|null $status file status in revision
*
* @throws CommonException
*/
public function __construct($pathName, BaseRepository $repository, $status = null)
{
$this->name = basename($pathName);
$this->path = FileHelper::normalizePath($pathName);
// first character for status
$this->status = !is_null($status) ? substr($status, 0, 1) : $status;
$this->repository = $repository;
if (!StringHelper::startsWith($this->path, $repository->getProjectPath())) {
throw new CommonException("Path {$this->path} outband of repository");
}
$this->relativePath = substr($this->path, strlen($repository->getProjectPath()));
parent::__construct([]);
}
示例8: actionIndex
public function actionIndex()
{
if (count(Yii::$app->request->post()) > 0) {
$formValues = Yii::$app->request->post((new Investigator())->formName());
$add = [];
$skip = [];
foreach ($formValues as $name => $value) {
if (StringHelper::startsWith($name, 'id')) {
$id = substr($name, 2);
foreach (Yii::$app->session->get('items') as $sessionItem) {
if ($sessionItem['id'] == $id) {
switch ($value) {
// пропустить
case 1:
$skip[] = $sessionItem['id'];
break;
// добавить
// добавить
case 2:
$add[] = $sessionItem['id'];
break;
}
}
}
}
}
if (count($skip) > 0) {
(new Query())->createCommand()->update(Inv::TABLE, ['status' => Inv::STATUS_SKIP], ['in', 'id', $skip])->execute();
}
foreach ($add as $item) {
$i = Inv::find($item);
$class = $i->getField('class_name');
// послание
/** @var \app\services\investigator\InvestigatorInterface $class */
$class = new $class();
$extractor = $class->getItem($i->getField('url'));
// добавляю
Chenneling::insertExtractorInterface($extractor);
}
if (count($add) > 0) {
(new Query())->createCommand()->update(Inv::TABLE, ['status' => Inv::STATUS_ADD], ['in', 'id', $add])->execute();
}
Yii::$app->session->remove('items');
Yii::$app->session->setFlash('contactFlash');
return $this->render([]);
} else {
$items = \app\models\Investigator::query(['status' => \app\models\Investigator::STATUS_NEW])->select(['class_name as class', 'id', 'url', 'date_insert', 'status', 'name'])->all();
Yii::$app->session->set('items', $items);
return $this->render(['items' => $items]);
}
}
示例9: initialize
/**
* @inheritdoc
*/
protected function initialize($rows)
{
$diffId = null;
$this->previousFilePath = self::NULL_PATH;
$this->newFilePath = self::NULL_PATH;
foreach ($rows as $n => $row) {
if ($n >= 0 && $n <= 2) {
// first 3 lines are description
if (trim($this->description)) {
$this->description .= PHP_EOL . $row;
} else {
$this->description = $row;
}
if (StringHelper::startsWith($row, 'Binary files')) {
// stop parsing if diff is binary
$this->isBinary = true;
break;
}
// old or new file path
$matches = [];
if (preg_match('#^\\-\\-\\-[\\s]a(.*)$#i', $row, $matches)) {
$this->previousFilePath = $matches[1];
} else {
if (preg_match('#^\\+\\+\\+[\\s]b(.*)$#i', $row, $matches)) {
$this->newFilePath = $matches[1];
}
}
} else {
if ($n == 3 && StringHelper::startsWith($row, 'GIT binary patch')) {
// stop parsing if diff is binary
$this->isBinary = true;
break;
} else {
if (StringHelper::startsWith($row, '@@')) {
// new diff line
$diffId = $row;
$matches = [];
$pattern = '#^@@[\\s]\\-([\\d]+),?([\\d]+)?[\\s]\\+([\\d]+),?([\\d]+)?[\\s]@@#i';
preg_match($pattern, $row, $matches);
$this->lines[$diffId] = ['beginA' => isset($matches[1]) ? (int) $matches[1] : 1, 'beginB' => isset($matches[3]) ? (int) $matches[3] : 1, 'cntA' => isset($matches[2]) ? (int) $matches[2] : 0, 'cntB' => isset($matches[4]) ? (int) $matches[4] : 0, 'lines' => []];
} else {
if ($diffId && isset($this->lines[$diffId])) {
// changed row
$this->lines[$diffId]['lines'][] = $row;
}
}
}
}
}
}
示例10: getContentAsArray
/**
* Возвращает массив чистых строк без тегов
*
* @return array
*/
public function getContentAsArray()
{
$html = $this->getObjArticle();
$ret = [];
foreach ($html->find('div.td-post-text-content/p') as $p) {
if ($p instanceof \simple_html_dom_node) {
if ($p->children[0]->tag != 'noindex') {
$string = trim($p->plaintext);
if (StringHelper::startsWith($string, ' ')) {
$string = Str::sub($string, 6);
}
$ret[] = $string;
}
}
}
return $ret;
}
示例11: beforeAction
public function beforeAction($action)
{
if (!parent::beforeAction($action)) {
return false;
}
$get = Yii::$app->request->get();
$filterParams = array_filter($get, function ($val, $key) {
return StringHelper::startsWith($key, self::FILTER_GET_TAG);
}, ARRAY_FILTER_USE_BOTH);
// $filterNames = array_map(function($val){
// return substr($val, strlen(self::FILTER_GET_TAG));
// }, $filterParams);
foreach ($filterParams as $key => $value) {
$this->addFilter($key, $value);
}
return true;
}
示例12: update2
public function update2($id)
{
$item = parent::update();
$item['id'] = $id;
$class = new \app\models\SubscribeHistory($item);
$content = $class->getField('content');
require_once Yii::getAlias('@csRoot/services/simplehtmldom_1_5/simple_html_dom.php');
$content = str_get_html($content);
foreach ($content->find('img') as $element) {
$src = $element->attr['src'];
if (StringHelper::startsWith($src, 'http') == false) {
$element->attr['src'] = Url::to($src, true);
}
}
$content = $content->root->outertext();
$class->setContent($content);
return $item;
}
示例13: actionRaw
/**
* View project path tree or raw project file
*
* @param string|null $path Relative project path (null if root)
*/
public function actionRaw($path = null)
{
$absolutePath = FileHelper::normalizePath($this->repository->getProjectPath() . DIRECTORY_SEPARATOR . $path);
if (!StringHelper::startsWith($absolutePath, $this->repository->getProjectPath()) || !file_exists($absolutePath)) {
throw new NotFoundHttpException();
}
$breadcrumbs = $this->generateBreadcrumbs($path);
if (is_dir($absolutePath)) {
// render path tree
$filesList = $this->repository->getFilesList($path);
return $this->render('tree', ['project' => $this->project, 'repository' => $this->repository, 'filesList' => $filesList, 'breadcrumbs' => $breadcrumbs]);
} else {
if (is_file($absolutePath)) {
// render raw file
$fileContents = file_get_contents($absolutePath);
return $this->render('raw', ['repository' => $this->repository, 'project' => $this->project, 'breadcrumbs' => $breadcrumbs, 'fileContents' => $fileContents]);
}
}
// if else - 404
throw new NotFoundHttpException();
}
示例14: run
/**
* Render file view.
* If has CommonException - it's may by only not found commit, or not found file in project path.
*
* @return array
* @throws NotFoundHttpException
*/
public function run()
{
/* @var $commit BaseCommit */
$commit = null;
/* @var $fileDiff BaseDiff[] */
$fileDiff = [];
/* @var $fileContents string */
$fileContents = '';
$isBinary = false;
try {
// get commit model by commit identifier
$commit = $this->repository->getCommit($this->commitId);
$fileDiff = $commit->getDiff($this->filePath);
$isBinary = isset($fileDiff[0]) && $fileDiff[0]->getIsBinary();
if ($this->mode === self::MODE_RAW_BINARY && $isBinary) {
// returns raw binary file
$images = ['png' => 'image/png', 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'gif' => 'image/gif'];
$pathinfo = pathinfo($this->filePath);
$mimeType = isset($images[strtolower($pathinfo['extension'])]) ? $images[strtolower($pathinfo['extension'])] : 'application/octet-stream';
if (!StringHelper::startsWith($mimeType, 'image/')) {
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename=' . basename($this->filePath));
}
header('Content-Type: ' . $mimeType);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
$commit->getRawBinaryFile($this->filePath, function ($data) {
print $data;
flush();
});
exit;
} elseif ($this->mode === self::MODE_RAW && $commit->getFileStatus($this->filePath) != File::STATUS_DELETION) {
// modified file
$fileContents = $isBinary ? '' : $commit->getRawFile($this->filePath);
} elseif ($this->mode === self::MODE_RAW) {
// moved file
$fileContents = $isBinary ? '' : $commit->getPreviousRawFile($this->filePath);
}
} catch (CommonException $ex) {
throw new ServerErrorHttpException(Yii::t('app', 'System error: {message}', ['message' => $ex->getMessage()]), $ex->getCode(), $ex);
}
$viewFile = null;
switch ($this->mode) {
case self::MODE_DIFF:
$viewFile = $isBinary ? 'file_raw' : 'file_diff';
break;
case self::MODE_COMPARE:
$viewFile = $isBinary ? 'file_raw' : 'file_compare';
break;
case self::MODE_RAW:
$viewFile = 'file_raw';
break;
default:
throw new NotFoundHttpException();
}
return ['diff' => Yii::t('project', 'Revision') . ': ' . $commit->getId(), 'html' => $this->controller->renderAjax('commit/' . $viewFile, ['project' => $this->project, 'commit' => $commit, 'diffs' => $fileDiff, 'fileContents' => $fileContents, 'path' => $this->filePath, 'isBinary' => $isBinary])];
}
示例15: formatAmount
/**
* Format the given amount into a displayable currency.
*
* @param int $amount
*
* @return string
*/
public static function formatAmount($amount)
{
if (static::$formatCurrencyUsing) {
return call_user_func(static::$formatCurrencyUsing, $amount);
}
$amount = number_format($amount / 100, 2);
if (StringHelper::startsWith($amount, '-')) {
return '-' . static::usesCurrencySymbol() . ltrim($amount, '-');
}
return static::usesCurrencySymbol() . $amount;
}