【问题标题】:CFML - Parse a String - Find VariablesCFML - 解析字符串 - 查找变量
【发布时间】:2021-10-12 18:03:39
【问题描述】:

我知道这很简单。但我找不到我的剪切粘贴代码或其他有效的东西。

我正在加密一个字符串。

<cfset encrlink = encrypt("uid=WWWDDD&email=BOBEMAIL@BOB.COM", APPLICATION.AesKeyForMails, "AES", "HEX")>

效果很好。然后我解密它。

<cfset dncrlink = decrypt("#encrlink#", APPLICATION.AesKeyForMails, "AES", "HEX")>
<cfoutput>[#dncrlink#]</cfoutput> 

效果很好。发出“uid=WWWDDD&email=BOBEMAIL@BOB.COM”

我需要取出 "uid=" 和 "email=" 并用作解密字符串的变量。通过解析。我只是有点卡住了。是修剪吗?寻找?我有点有这个工作。但不确定如何构建 cfset。

<cfoutput>
    <cfset theUrl = "#dncrlink#" />
    <cfloop list="#theUrl#" index="URLPiece" delimiters="&">
        <br>#listFirst(urlPiece, "=")# = #listLast(urlPiece, "=")# <br> 
    </cfloop>
</cfoutput>

【问题讨论】:

  • 您使用的逻辑对我来说似乎很好。

标签: coldfusion coldfusion-2016


【解决方案1】:

我能够为变量做一个 CFIF。

      <cfloop list="#theUrl#" index="URLPiece" delimiters="&">
         <br>#listFirst(urlPiece, "=")# = #listLast(urlPiece, "=")# <br>    
         <cfif #listFirst(urlPiece, "=")# is "uid"><cfset uid = "#listLast(urlPiece, "=")#"></cfif>
         <cfif #listFirst(urlPiece, "=")# is "email"><cfset email = "#listLast(urlPiece, "=")#"></cfif>
       </cfloop>

【讨论】:

    【解决方案2】:

    对于 cmets 来说太长了 ...

    您还可以将逻辑“泛化”为可用于任何查询字符串的内容。提取参数并将它们存储在结构中

    <cfset dncrlink = "uid=WWWDDD&email=BOBEMAIL@BOB.COM">
    
    <cfset params = {}>
    <cfloop list="#dncrlink#" index="elem" delimiters="&">
        <cfset params[ elem.listFirst("=") ] = elem.listRest("=")>
    </cfloop>
    

    然后访问参数值:

    <cfoutput>
        uid = #params.uid#<br>
        email = #params.email#<br>
    </cfoutput>
    

    【讨论】:

      猜你喜欢
      • 2012-04-30
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      相关资源
      最近更新 更多