-3

我有一个典型的问题,我不确定这是否可能。我有一个表单,其中有一个字段,即 Producer。我如何使它成为可能,如果用户使用单词并且在字段中然后插入单词结果中,如果用户不使用单词并且在字段中然后插入单词结果中。让我用一个例子来解释一下。

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

ABCDEF这部电影的制片人。

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

XYZ这部电影的制片人。

我有以下代码:

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

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

4

4 回答 4

4

只需调用haystack 和strposneedle即可。如果返回值为 false,则字符串不包含.$_POST['Producer']andand

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

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

于 2012-07-20T16:36:20.223 回答
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。

于 2012-07-20T16:38:48.263 回答
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"] 的传入值,具体取决于您打算如何使用格式化字符串。

于 2012-07-20T16:45:26.130 回答
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))
}
于 2012-07-20T16:42:48.293 回答