我需要在mysql表中存储一个逗号分隔的字符串(URL数组)。
例如:
"https://google.com,https://yahoo.com,https://something.com"
从php内部的表中获取此信息,我正在使用explode
函数来获取数组。
$arr = explode(',', $string);
问题是因为某些url本身可能包含逗号,这会引起混淆。
实际上,URL可以包含任何字符,无论是否转义-它将在explode
函数中产生错误。
有帮助吗?
答案 0 :(得分:1)
您可以使用 editor.insertHtml( "test"+imageId,'text', range );
urlencode()
您可以使用$stupidCommaUrl = 'http://why.com/is,there/a/comma';
echo urlencode($stupidCommaUrl);
// outputs http%3A%2F%2Fwhy.com%2Fis%2Cthere%2Fa%2Fcomma
将其转换回去。
您的数据库设计听起来有缺陷。正如Nigel在上述评论中所说,请研究数据库规范化。
答案 1 :(得分:0)
请尝试使用在$ / $之类的网址中找不到的字符集来分隔值,这些字符将充当逗号,因此在检索值时,您将执行以下操作:{{ 1}}
您还可以构建一个数组并使用json_encode并保存字符串,您将摆脱explode函数,例如:
def change_hierarchy(parent)
if valid_move?(parent)
self.parent_id= self.read_attribute(:parent_id) + '/' + parent.read_attribute(:parent_id)
self.save
true
else
false
end
end
然后将$ urlsInJson存储在数据库中
要检索数据,您将使用
$arr = explode('$&$', $string);
希望有帮助。