以逗号分隔的字符串作为网址数组

时间:2018-07-17 10:38:12

标签: php mysql

我需要在mysql表中存储一个逗号分隔的字符串(URL数组)。

例如:

"https://google.com,https://yahoo.com,https://something.com"

从php内部的表中获取此信息,我正在使用explode函数来获取数组。

$arr = explode(',', $string);

问题是因为某些url本身可能包含逗号,这会引起混淆。

实际上,URL可以包含任何字符,无论是否转义-它将在explode函数中产生错误。

有帮助吗?

2 个答案:

答案 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. 请尝试使用在$ / $之类的网址中找不到的字符集来分隔值,这些字符将充当逗号,因此在检索值时,您将执行以下操作:{{ 1}}

  2. 您还可以构建一个数组并使用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);

希望有帮助。