其实我想删除By
中的所有内容,我的答案应该发布于3月6日。我使用以下代码。这是工作。但问题有时候,如果给定字符串中没有By
,则回显值根本不显示。
$s = 'Posted On March 6th By Cristiano';
$variable = substr($s, 0, strpos($s, "By"));
echo $variable;
或
$variable = strstr($s, 'By', true);
echo $variable;
答案 0 :(得分:0)
不要在substr中使用strpos,只需将其分配给单独的变量并检查其值:
<?php
$s = 'Posted On March 6th By Cristiano';
$by_start = strpos($s, "By");
$variable = $by_start === false ? $s : substr($s, 0, $by_start);
echo $variable;
答案 1 :(得分:0)
以下是两种可以使用的三种方法。
$s = 'Posted On March 6th By Cristiano';
$approach1 = explode(' By', $s);
echo $approach1[0];
或正则表达式:
echo preg_replace('/ By.*/', '', $s);
您也可以使用preg_match
。
preg_match('/(.*) By/', $s, $matches);
echo $matches[1];
甚至是preg_split
(虽然在这个例子中没有看到爆炸的优势......)。
$four = preg_split('/ By/', $s);
echo $four[0];