Hey, gracias a ambos por responder, me habeis sido de gran ayuda
El código finalmente ha quedado así
Código PHP:
<%
Dim ExplDoc, registros, i, marca, array_cadena, strOriginal
ExplDoc = 0 ' Este campo es de texto
Call Registro (rs2)
SQL="SELECT ExplDoc, IBol from table where IBol = ...."
rs2.Open SQL, fconn
registros=rs2.getrows
Call LimpiarRS (rs2)
Call LimpiarConexion (fconn)
For i=0 to UBound(registros,2) ' Listo los resultados
marca = Trim(Request.QueryString("clave")) ' Recoge los parámetros de la busqueda
IF marca = "" then
%>
<%=registros(ExplDoc,i)%>
<%
ELSE
array_cadena = Split(marca," ")
StrOriginal = registros(ExplDoc,i)
%>
<%=ResaltaParam(StrOriginal)%>
<%
END IF
Next ' i
%>
El include
Código PHP:
Dim marca, array_cadena
Dim n, Coincidencia, strCadena, strMarcado
Function ResaltaParam(strOriginal)
marca = Trim(Request.QueryString("clave"))
array_cadena = Split(marca," ")
For n=0 to UBound(array_cadena)
Dim objRegExp
Set objRegExp = new RegExp
With objRegExp
.Pattern = ("\b("&array_cadena(n)&")+\b")
.IgnoreCase = True
.Global = True
End With
Set strCadena = objRegExp.Execute(strOriginal)
For Each Coincidencia in strCadena
strMarcado = objRegExp.replace(strOriginal, "<span class=""bgC"&n&""">$1</span>")
Next
ResaltaParam = strMarcado
Set objRegExp = nothing
Next n
End Function
Ahora me surge otro problemas con el que no habia contado, si el valor que le paso a expresión está acentuado, repite el registro anterior tantas veces como el número de registros que han de ser mostrados.
Un supuesto
Se han de mostrar 100 registros coincidentes con la consulta. Si el registro número 20 lleva una palabra acentuada y esa palabra hay que resaltarla por que es una de las palabras que llegaron a traves de la query, hasta el registro 19 se muestran correctamente y después se repite ese mismo registro hasta que acabe el ciclo, en este caso 81 veces.
¿Alguna idea?
Gracias