我的wp帖子标题目前看起来像这样:
哈姆雷特(William Shakespeare饰演)我正在使用此代码:
<?php
echo strtolower(str_replace(' ', '', get_the_title()));
?>
获取每个标题,但我只需要标题的第一部分而没有括号内的文字。
即
哈姆雷特
罗密欧与朱丽叶
仲夏夜之梦
等。
如何修改代码,使其只得到标题的第一部分而不用括号之间的内容?
答案 0 :(得分:0)
循环遍历字符串中的每个字符,将它们添加到辅助变量中。如果你点击(
然后停止。
$string = 'Romeo and Juliet (by William Shakespeare)';
$result = '';
for ($i = 0, $l = strlen($string) - 1; $i < $l; $i++) {
if ($string[$i] === '(') {
break;
}
$result .= $string[$i];
}
$string = trim($result);
找到第一个括号,然后在此之前删除文本。
$string = 'Romeo and Juliet (by William Shakespeare)';
$first = strpos($string, '(');
if ($first !== false) {
$string = substr($string, 0, $first);
}
$string = trim($string);
将字符串拆分为第一个(
。然后使用第一部分。
$string = 'Romeo and Juliet (by William Shakespeare)';
$parts = explode('(', $string, 2);
$string = trim(array_shift($parts));
使用正则表达式:
$string = 'Romeo and Juliet (by William Shakespeare)';
preg_match('/[^(]+/', $string, $result);
$string = trim(array_shift($result));
还有奖金!如果你不止一次这样做,那么像这样的函数应该可以解决问题。你应该重命名它。
function awesomeness($string) {
$paren = strpos($string, '(');
if ($paren !== false) {
$string = substr($string, 0, $paren);
$string = trim($string);
}
return $string;
}