Как разделить строку несколькими разделителями в PHP?

Имя маршрута не хранится в маршруте, к сожалению. Это просто используется внутренне в MVC как ключ в наборе. Я думаю, что это - что-то, что можно все еще использовать при создании ссылок с HtmlHelper. RouteLink, например (возможно, где-то в другом месте также, никакая идея).

Так или иначе, я нуждался в этом также и здесь - то, что я сделал:

public static class RouteCollectionExtensions
{
    public static Route MapRouteWithName(this RouteCollection routes,
    string name, string url, object defaults, object constraints)
    {
        Route route = routes.MapRoute(name, url, defaults, constraints);
        route.DataTokens = new RouteValueDictionary();
        route.DataTokens.Add("RouteName", name);

        return route;
    }
}

, Таким образом, я мог зарегистрировать маршрут как это:

routes.MapRouteWithName(
    "myRouteName",
    "{controller}/{action}/{username}",
    new { controller = "Home", action = "List" }
    );

В моем действии Контроллера, я могу получить доступ к имени маршрута с:

RouteData.DataTokens["RouteName"]

Hope, которая помогает.

25
задан Jim 28 January 2014 в 15:18
поделиться

4 ответа

<?php

$pattern = '/[;,]/';

$string = "something here ; and there, oh,that's all!";

echo '<pre>', print_r( preg_split( $pattern, $string ), 1 ), '</pre>';

Обновленный ответ на обновленный вопрос:

<?php

$pattern = '/[\x{ff0c},]/u';

//$string = "something here ; and there, oh,that's all!";
$string = 'hei,nihao,a ';


echo '<pre>', print_r( preg_split( $pattern, $string ), 1 ), '</pre>';
37
ответ дан 28 November 2019 в 20:53
поделиться
$result_array = preg_split( "/[;,]/", $starting_string );
10
ответ дан 28 November 2019 в 20:53
поделиться

PHP-функция split () позволяет использовать в качестве разделителя регулярное выражение. К сожалению, она устарела и будет удалена в PHP7!

Функция preg_split () должна работать, и она возвращает массив:

$results = preg_split('/[;,]/', $string);

Есть несколько дополнительных необязательных параметров, которые могут быть вам полезны .

Является ли первый символ-разделитель в вашем отредактированном примере двухбайтовым символом Unicode?

Возможно, функция preg_slit () обрабатывает разделитель как три символа и разделяет символы символа Unicode (китайский?) ' '

1
ответ дан 28 November 2019 в 20:53
поделиться

Вы можете получить значения в массиве, используя Devin's или Метод Медера .

Чтобы получить желаемый результат, вы, вероятно, могли бы сделать это

echo implode("\n", $resultingArray);

Или использовать
, если вам нужен HTML.

0
ответ дан 28 November 2019 в 20:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: