|
Home > Archive > IIS ASP > April 2006 > page title in a list of recently updated pages
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
page title in a list of recently updated pages
|
|
| nospam@plasticlegs.com 2006-04-27, 7:52 am |
| Hi there,
I'm using VBScript to display a list of the ten most recently updated
pages on my web site. Right now, the script lists the filenames and
the date modified in a given directory.
What I want to know is if there is any way to extract the page title
and display that instead of the file name? Can I use .asp and VBscript
to "delve" into the file and extract the title?
Here's the code I'm using:
<%
folder = ".\"
set fso = CreateObject("Scripting.fileSystemObject")
set fold = fso.getFolder(Server.MapPath(folder))
fileCount = fold.files.count
dim fNames(), fDates()
redim fNames(fileCount), fDates(fileCount)
cFcount = 0
for each file in fold.files
cFcount = cFcount + 1
fNames(cFcount) = lcase(file.name)
fDates(cFcount) = file.dateLastModified
next
for tName = 1 to fileCount
for nName = (tName + 1) to fileCount
if (fDates(tName) < fDates(nName)) then
buffer = fNames(nName)
dateBuffer = fDates(nName)
fNames(nName) = fNames(tName)
fDates(nName) = fDates(tName)
fNames(tName) = buffer
fDates(tName) = dateBuffer
end if
next
next
if (fileCount > 10) then
fileCount = 10
End If
Response.Write "<table border=1 width='90%'>"
for i = 1 to fileCount
Response.Write "<tr><td><a href='" & fNames(i) & "'>" &
fNames(i) & "</a></td><td>" & fDates(i) & "</td></tr>"
next
Response.Write "</table>"
%>
| |
| Mike Brind 2006-04-27, 7:52 am |
|
nospam@plasticlegs.com wrote:
> Hi there,
>
> I'm using VBScript to display a list of the ten most recently updated
> pages on my web site. Right now, the script lists the filenames and
> the date modified in a given directory.
>
> What I want to know is if there is any way to extract the page title
> and display that instead of the file name? Can I use .asp and VBscript
> to "delve" into the file and extract the title?
>
> Here's the code I'm using:
> <%
> folder = ".\"
> set fso = CreateObject("Scripting.fileSystemObject")
> set fold = fso.getFolder(Server.MapPath(folder))
> fileCount = fold.files.count
> dim fNames(), fDates()
> redim fNames(fileCount), fDates(fileCount)
> cFcount = 0
> for each file in fold.files
> cFcount = cFcount + 1
> fNames(cFcount) = lcase(file.name)
> fDates(cFcount) = file.dateLastModified
> next
> for tName = 1 to fileCount
> for nName = (tName + 1) to fileCount
> if (fDates(tName) < fDates(nName)) then
> buffer = fNames(nName)
> dateBuffer = fDates(nName)
> fNames(nName) = fNames(tName)
> fDates(nName) = fDates(tName)
> fNames(tName) = buffer
> fDates(tName) = dateBuffer
> end if
> next
> next
> if (fileCount > 10) then
> fileCount = 10
> End If
> Response.Write "<table border=1 width='90%'>"
> for i = 1 to fileCount
> Response.Write "<tr><td><a href='" & fNames(i) & "'>" &
> fNames(i) & "</a></td><td>" & fDates(i) & "</td></tr>"
> next
> Response.Write "</table>"
> %>
Yes. You can use the Scripting.FileSystemObject to read the contents
of an asp file, and then a regular expression to get the title. Here's
one that opens a file in the same folder and finds the title. It
assumes that you will only have letters, numbers or spaces in the
title:
<%
Dim objFSO, objTextStream, strSearchOn, objMatch, colmatches, mymatch
Dim strFileName
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
strFileName = Server.Mappath("filename.asp")
const fsoForReading = 1
Set objTextStream = objFSO.OpenTextFile(strFileName, fsoForReading)
strSearchOn = objTextStream.ReadAll
Set objRegExpr = New regexp
objRegExpr.Pattern = "<title>[\w\d\s]*<"
objRegExpr.Global = True
objRegExpr.IgnoreCase = True
set colmatches = objRegExpr.Execute(strSearchOn)
For Each objMatch in colMatches
mymatch = replace(objMatch.Value,"<title>","")
mymatch = replace(mymatch,"<","")
Next
Response.Write mymatch
objTextStream.Close
Set objTextStream = Nothing
Set objFSO = Nothing
%>
--
Mike Brind
| |
| nospam@plasticlegs.com 2006-04-27, 7:52 am |
| Thanks Mike! I was able to insert that script into my code to give me
exactly what I want! One last thing - is there any way to allow dashes
in the title?
| |
| Mike Brind 2006-04-27, 7:52 am |
|
nospam@plasticlegs.com wrote:
> Thanks Mike! I was able to insert that script into my code to give me
> exactly what I want! One last thing - is there any way to allow dashes
> in the title?
Yes. Add \- to the pattern within the square brackets, so the line
should read:
objRegExpr.Pattern = "<title>[\w\d\s\-]*<"
Hyphens/Dashes need to be escaped with a backslash because it's one of
the special characters. The pattern above first looks for the text
<title>, followed by any word character or digit or whitespace or dash
appearing 0 or more times before an opened angle bracket.
If you find you need to add more options (double colons :: seem to be
the rave with some people), have a look at this article:
http://msdn.microsoft.com/library/d...pting051099.asp
--
Mike Brind
| |
| Evertjan. 2006-04-27, 7:52 am |
| Mike Brind wrote on 20 apr 2006 in microsoft.public.inetserver.asp.general:
> Yes. Add \- to the pattern within the square brackets, so the line
> should read:
>
> objRegExpr.Pattern = "<title>[\w\d\s\-]*<"
>
Why not more general:
"<title>[^<]*<"
?
--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
| |
| nospam@plasticlegs.com 2006-04-27, 7:52 am |
| Thanks Mike! I was able to insert that script into my code to give me
exactly what I want! One last thing - is there any way to allow dashes
in the title?
Oops, never mind, I just solved it:
Replace
objRegExpr.Pattern = "<title>[\w\d\s]*<"
With
objRegExpr.Pattern = "<title>[\w\d\s\x2D]*<"
Thanks again!
|
|
|
|
|