Jag måste fråga varför du vill det?
Hejsan!
Finns det något enkelt sätt att med hjälp av ASP hämta dokumentets Title?
(Det vill säga det som finns mellan <TITLE> och </TITLE> )
Tack.
23 svar · 518 visningar · startad av Mz
Hejsan!
Finns det något enkelt sätt att med hjälp av ASP hämta dokumentets Title?
(Det vill säga det som finns mellan <TITLE> och </TITLE> )
Tack.
Jag måste fråga varför du vill det?
Jag kom inte så himla långt..
Kan någon hjälpa mig?
Koden så far:
<%
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.webeye.nu/", False
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing
myString = StrHTML
Set objRegExp = New regexp
objRegExp.Global = False
objRegExp.IgnoreCase = True
objRegExp.Pattern = "<title>"
Set myMatches = objRegExp.Execute(myString)
???????
%>
Jag har lyckats hämta all kod och sånt, det är RegExp som jag har svårt med, hur hämtar jag värdet mellan <TITLE> och </TITLE> ?
objRegExp.Pattern = "/(.*?)<title>(.*?)<\/title>(.*?)/is";
Så hade mitt pattern sett ut i PHP, mycket möjligt att det är samma i ASP. Är inte så haj på RegExp's med ASP
Inte i PHP heller för den delen, kan ju läggas till
Red.} Kan ju lägga till att det är andra ordningen som du ska hämta sedan
Ok, jag har meckat lite med hjälp av Vides lektion, men jag får inte ut nått värde alls, inget felmeddelande heller.
<%
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.webeye.nu/", False
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing
myString = StrHTML
Set objRegExp = New regexp
objRegExp.Global = False
objRegExp.IgnoreCase = True
objRegExp.Pattern = "/(.*?)<title>(.*?)<\/title>(.*?)/is"
Set myMatches = objRegExp.Execute(myString)
For each item in myMatches
Response.Write "Hittade en träff vid position "& item.SecondIndex &", som är "& item.Length &" tecken lång. Värdet är <b>"& item.Value &"</b><br>"
Next
%>
Nått sånthär kanske:
<%
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.webeye.nu/", False
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing
myString = StrHTML
Set objRegExp = New regexp
objRegExp.Global = False
objRegExp.IgnoreCase = True
objRegExp.Pattern = "<title>(.*)</title>"
strString = objRegExp.Replace( myString, "$1")
%>
Inte ett nått...
Jag får inte ut nått värde, skärmen är bara.... vit.
En liten fråga från en kille som bara tittade på Vides senaste kod;
Skriver du ut värdet av strString då?
Kör du koden som den är så skrivs ju ingenting ut.
Mvh,
Lägg till en Response.write strString bara efter vides replace-rad.
Eller använd variabeln på det sätt du önskar, släng in i databas eller vad du nu vill.
Mvh,
Jo jo det förstår jag
Men om jag gör det så visas hela källkoden från sidan, inte bara det som står inom <title> och </title>...
Kan det vara Pattern som skall justeras?
I så fall så, ja, det verkar så.
Tyvärr kan jag inte ens stava till Regular Expressions, så jag lämnar tillbaka pucken till de andra gubbarna.
Mvh,
Om du använde dig av mitt Pattern då, med två subqueries, före och efter <title>-taggarna, och skrev ut strString, fick du ut nåt då?
objRegExp.Pattern = "/(.*?)<title>(.*?)<\/title>(.*?)/is"
strString = objRegExp.Replace(myString, "$2")
Kanske?
Ok, nog tyckte jag att stavningen var korrekt alltid..
Jag avvaktar väl på de andra "gubbarna", kanske dom kan knäcka det.
SPIN:
Nja, det blev tyvärr ingen förbättring, samma resultat.
(hela källkoden skrivs ut.)
Hmm... det är lätt att hjälpa till när man tänker med lilltån, testa detta:
<%
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.webeye.nu/", False
objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing
Set objRegExp = New regexp
objRegExp.Global = False
objRegExp.IgnoreCase = True
objRegExp.Pattern = "<title>(.*)</title>"
Set myMatches = objRegExp.Execute( strHTML )
For each item in myMatches
Response.Write mid( strHTML, item.FirstIndex + 8, item.Length -4 )
Next
%>