Substr, чтобы исключить определенный текст - используя список get_the_title()

Допустим, у меня есть список заголовков в WordPress, например. Название товара - (США)

Я хотел бы вернуть только имя элемента, чтобы все после - не возвращается

Один улов не у всех заголовков в моем списке есть - и те, которые не возвращают пробел, когда я использую код ниже:

$str = get_the_title();
$str = substr($str, 0, strpos($str, '-'));
echo $str;

Любая идея, как заставить его не возвращать пробелы в заголовках без дефиса -?

1 ответ

Способ регулярных выражений

Используйте preg_replace(), а затем просто обрезайте () результат.

$string = 'Item Name - (USA)';
var_dump(trim(preg_replace('~-.*$~', null, $string)));

Возвращает:

string(9) "Item Name"

Объяснение:

  1. preg_replace('~-.*$~', null, $string) Поймай всех персонажей с первого раза - до конца строки и заменить их null,

  2. trim($string) И удалите пробельные символы с обеих сторон строки.

Нерегулярный способ выражения

Используйте explode () и reset (), чтобы разделить строку и получить первый член из результирующего массива, а затем обрезать его.

$string = 'Item Name - (USA)';
var_dump(trim(reset(explode("-", $string))));

Возвращает:

string(9) "Item Name"
Другие вопросы по тегам