检查字符串是否以"开头和结尾,如果不是

时间:2016-02-18 11:11:59

标签: php

我需要检查字符串是否以"开头和结尾。如果不是这种情况,则应将"添加到其中。例如text转换为"text"。我正在使用以下代码:

if (strpos($owner_text, '"') !== 0)
{
    $owner_text = '"' . $owner_text . '"';
}

然后我意识到,如果我有类似text""text的内容,这将无效。在这些情况下,text"将转换为"text"",而"text将保持不变。所以我改变了上面的代码:

// e.g. text. strpos returns false if nothing found
if (strpos($owner_text, '"') === false && strrpos($owner_text, '"') === false)
{
    $owner_text = '"' . $owner_text . '"';
}
// "text
else if (strpos($owner_text, '"') === 0 && strrpos($owner_text, '"') === 0)
{
    $owner_text = $owner_text . '"';
}

else if (strpos($owner_text, '"') !== 0 && strrpos($owner_text, '"') !== 0)
{
    // text"
    if (strpos($owner_text, '"') == strlen($owner_text) - 1)
    {
        $owner_text = '"' . $owner_text;
    }
    // te"xt
    else
    {
        $owner_text = '"' . $owner_text . '"';
    }
}

现在可以使用text "texttext",但它似乎非常复杂,而且te"xt"等问题也存在问题。我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

只需检查第一个和最后一个字符,而不是在整个字符串中搜索"

if ($owner_text[0] != '"') $owner_text = '"'.$owner_text;
if ($owner_text[strlen($owner_text)-1] != '"') $owner_text = $owner_text.'"';

请注意,此代码不会对$owner_text进行任何错误检查。

更新您甚至可以使用更少的代码执行此操作(这也会处理错误处理,例如,如果$onwer_text为空):

$owner_text = '"'.trim($owner_text, '"'), '"';

答案 1 :(得分:0)

试试这个。它可能适合你

<?php

$str = "yangsunny";

$first = substr($str, 0,1);
$last = substr( $str,-1);
if($first!=='"'){
    $str = '"'.$str;
}
if($last!=='"'){
    $str = $str.'"';
}

echo $str;

?>