Substr以排除某些文本-使用get_the_title()的列表


Substr to exclude certain text - using a list of get_the_title()

假设我在wordpress中有一个标题列表。项目名称- (USA)

我想只返回项目名称,所以-之后的所有内容都不返回。

一个问题是,当我使用下面的代码时,并不是我列表中的所有标题都有-和那些不返回空白的标题:

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

任何想法我如何得到它不返回空白的标题,没有连字符- ?

正则表达式方式

使用preg_replace(),然后只使用trim()。

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

的回报:

string(9) "Item Name"

解释:

  1. preg_replace('~-.*$~', null, $string)捕获从第一个-到字符串末尾的所有字符,并用null替换

  2. trim($string)并去掉字符串两边的空白字符

非正则表达式方式

使用explosion()和reset()来分割字符串并从结果数组中获得第一个成员,然后trim()它。

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

的回报:

string(9) "Item Name"