Мне нужно проверить, начинается ли строка и заканчивается ли она "
. И если это не так, то к ней следует добавить "
. 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"
, но мне кажется, reaaaally сложен и имеет проблемы с чем-то вроде te"xt"
. Как мне это сделать должным образом?
Просто проверить первый и последний символ вместо поиска '" 'во всей строке. –