我有一个典型的问题,我不确定它是否可能。我有一个表格,其中有一个字段,即制作人。如果用户在字段中使用和一词,然后在结果中插入单词 ,如果用户不使用单词和在字段中,然后在结果中插入 一词。让我用一个例子来解释你。
示例(单词和在字段中)然后生成以下结果:
ABC 和 DEF 是影片的制作人。
示例(单词和不在字段中)然后生成以下结果:
XYZ 是电影的制作人。
我有以下代码:
if(!empty($_POST['Producer'])) {
$description .= ' ' . $_POST["Producer"] . ' is/are the producer(s) of the movie';
}
请告诉我是否有人有这个想法。
答案 0 :(得分:4)
只需将strpos
与$_POST['Producer']
作为haystack,and
作为针,即可。如果返回值为false,则该字符串不包含and
。
现在您可以根据返回值创建输出。
答案 1 :(得分:2)
if(!empty($_POST['Producer']))
{
if(stripos($_POST['Producer'], ' and ') != false) // ' and ' is found
$producers = $_POST['Producer'] .' are the producers ';
else
$producers = $_POST['Producer'] .' is the producer ';
$description = $producers .'of the movie';
}
我将' and '
代替'and'
(使用空格),因为某些名称包含单词“are”,因此即使只有一个名称,它也会返回true。
答案 2 :(得分:2)
下面的代码应该有效(未经过测试)。
if(!empty($_POST['Producer'])) {
$producer = $_POST["Producer"]; // CONSIDER SANITIZING
$pos = stripos($_POST['Producer'], ' and ');
list($verb, $pl) = $pos ? array('are', 's') : array('is', '');
$description .= " $producer $verb the producer$pl of the movie";
}
如前所述,您还应该考虑清理$ _POST [“Producer”]的传入值,具体取决于您打算如何使用格式化字符串。
答案 3 :(得分:0)
我没有对此进行过测试,但有些内容应该可行。
$string = $_POST['Producer'];
//This is the case if the user used and.
$start = strstr($string, 'and');
if($start != null)
{
$newString = substr($string, 0, $start) . "are" . substr($string, $start+3, strlen($string))
}