如果$ _POST值具有单词AND,则插入单词ARE

时间:2012-07-20 16:30:59

标签: php if-statement insert field

我有一个典型的问题,我不确定它是否可能。我有一个表格,其中有一个字段,即制作人。如果用户在字段中使用一词,然后在结果中插入单词 ,如果用户不使用单词在字段中,然后在结果中插入 一词。让我用一个例子来解释你。

示例(单词在字段中)然后生成以下结果:

ABC DEF 是影片的制作人。

示例(单词不在字段中)然后生成以下结果:

XYZ 电影的制作人。

我有以下代码:

if(!empty($_POST['Producer'])) {
$description .= ' ' . $_POST["Producer"] . ' is/are the producer(s) of the movie';
}

请告诉我是否有人有这个想法。

4 个答案:

答案 0 :(得分:4)

只需将strpos$_POST['Producer']作为haystack,and作为针,即可。如果返回值为false,则该字符串不包含and

现在您可以根据返回值创建输出。

http://php.net/manual/en/function.strpos.php

答案 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))
}