2016-06-13 20 views
0

Ich habe Abfrage, deren Daten enthält eine URL wie unten, Wie kann ich den Id-Wert aus der URL mit Coldfusion extrahieren.Strip URL Param mit Coldfusion

http://127.0.0.1/entity/abc.cfm?title=first-page-review&id=476 

<cfif findNoCase('/entity/', qry.URL)> 
    <cfset Param2 = ListGetAt(qry.URL,2,"&")> 
    <cfoutput>#param2#</cfoutput> 

Dies wird die Ausgabe wie die Aufgabe -> 'id = 476', aber ich brauche nur die numerische ID als die Ausgabe. Ich kann die ersten 3 Zeichen entfernen, um die ID zu erhalten, aber gibt es einen besseren Weg, es zu tun. Dank

+0

wenn die ID immer nach den letzten = ist, warum nicht Ihre Liste Trennzeichen statt a = ändern Ausgabe von ein &? – luke

Antwort

0

Ihre URL-Variablen übereinstimmen werden immer bereitgestellt:

<cfset IDvar1 = "http://127.0.0.1/entity/abc.cfm?title=first-page-review&id=476"> 

<cfset IDvar2 = ListLast(IDvar1,"=") /> 

IDvar2 Ausbeuten 476.

+0

Richtig, aber die Abhängigkeit von der Position macht den Code spröde. Obwohl es ein wenig mehr Arbeit ist, alle Parameter in eine Struktur zu parsen (wie im obigen Link), so dass sie namentlich zugänglich sind, bietet sie viel mehr Flexibilität. – Leigh

+0

@Leigh Ich stimme völlig zu, aber in der Unternehmenswelt wird Perfektionismus kaum belohnt. Die meisten Menschen, die CF benutzen, arbeiten wahrscheinlich für mittlere Unternehmen oder Regierungsstellen. Ich gehe normalerweise davon aus, dass Rückwärtsübungen vorherrschen und beantworte die gestellte Frage. – TRose

+0

Ja, ich höre dich. Wenn jedoch der Hintergrund und die Beschränkungen des Fragestellers unbekannt sind, neige ich zu der Annahme, dass sie die Frage aufgeworfen haben, weil sie sich der Fallstricke oder anderer Optionen nicht bewusst sind. In diesem speziellen Fall geht es weniger um Perfektion als darum, etwas zu vermeiden, das leicht brechen kann. Es ist sehr wahrscheinlich, dass die Parameter nicht immer in der gleichen Reihenfolge sind, was es leicht macht, unbeabsichtigt einen Logikfehler einzuführen, der schnell Probleme verursachen wird. Da ein Arbeitsbeispiel bereits geschrieben ist, kann es genauso gut genutzt werden und erspart sich einige Kopfschmerzen :) – Leigh