我需要检查字符串是否以"
开头和结尾。如果不是这种情况,则应将"
添加到其中。例如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
"text
或text"
,但它似乎非常复杂,而且te"xt"
等问题也存在问题。我该怎么做呢?
答案 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;
?>