Получить текст до и после определенного знака

198
25 января 2018, 20:19

Допустим имеется такая строка:

$a = 'Author - Title';

Как получить из нее отдельно

$author = 'Author';
$title = 'Title';

используя переменную $a ?

Текст каждый раз уникальный, не меняется только знак -

Answer 1

Более универсальный вариант можно найти с использованием регулярных выражений:

$str = 'Author - Title';
preg_match('~([^-]+)\s+-\s+([^-]+)~', $str, $arr);
list( , $author, $title) = $arr;
var_dump($author, $title);

Но и без регулярок эту задачу вполне можно решить:

$str = 'Author - Title';
$arr = explode('-', $str);
$author = rtrim($arr[0]);
$title = ltrim($arr[1]);
var_dump($author, $title);

Или так:

$str = 'Author - Title';
$author = trim(strstr($str, '-', true));
$title = trim(strstr($str, '-'), '- ');
var_dump($author, $title);
Answer 2

Самый простой вариант

<?php
$a = 'Author - Title';
$items = explode(" - ", $a);
$author = $items[0];
$title = $items[1];

Так же можете подобрать нужный вариант из официальной документации, для php 5 при известных переменных было удобно использовать split, для php 7 рекомендуется замены preg_split(), explode(), str_split()

READ ALSO
Переопределение конструктора

Переопределение конструктора

Не понимаю, что означает wfm_fw

184
не срабатывает ajax запрос Wordpress

не срабатывает ajax запрос Wordpress

Столкнулся с следующей проблемой: нужно вытащить из php переменную и передать ее в js Помогите советом, что я не так делаю? вот пример кода:

243
PHP MYSQL создание индекса для оператора LIKE

PHP MYSQL создание индекса для оператора LIKE

На сайте есть форма поиска FULL TEXT SEARCH, которая до сего времени использовалась по умолчаниюЯ решил отказаться от неё в пользу LIKE так как результаты...

193
Раскрывающие блоки [требует правки]

Раскрывающие блоки [требует правки]

Можно ли сделать раскрывающий блок внутри раскрывающего блока?

175