Description Encodes String objects so they can be read on all computers. Syntax escape(charstring) The charstring argument is a String object to be encoded. C语言里有这个函数么??? java也没有吧 java有个 Encoder类 你这个有点想 javascript呀
C语言中没有吗?看看这段从网上Copy下来的代码。 /*********************************************/ /* DO SOME PRE-PROCESS FORMATTING */ /*********************************************/ /* fix URL field */ cp1 = cp2 = log_rec.url; /* handle null - case here... */ if (*++cp1 == -) { *cp2++ = -; *cp2 = \; } else { /* strip actual URL out of request */ while ( (*cp1 != ) && (*cp1 != \) ) cp1++; if (*cp1 != \) { /* scan to begin of actual URL field */ while ((*cp1 == ) && (*cp1 != \)) cp1++; /* remove duplicate / if needed */ if (( *cp1==/) && (*(cp1+1)==/)) cp1++; while ((*cp1 != )&&(*cp1 != \")&&(*cp1 != \)) *cp2++ = *cp1++; *cp2 = \; } } /* un-escape URL */ unescape(log_rec.url); /* check for service (ie: http://) and lowercase if found */ if ( (cp2=strstr(log_rec.url,"://")) != NULL) { cp1=log_rec.url; while (cp1!=cp2) { if ( (*cp1>=A) && (*cp1<=)) *cp1 += a-A; cp1++; } } /* strip query portion of cgi scripts */ cp1 = log_rec.url; while (*cp1 != \) if (!isurlchar(*cp1)) { *cp1 = \; break; } else cp1++; if (log_rec.url[0]==\) { log_rec.url[0]=/; log_rec.url[1]=\; } /* strip off index.html (or any aliases) */ lptr=index_alias; while (lptr!=NULL) { if ((cp1=strstr(log_rec.url,lptr->string))!=NULL) { if ((cp1==log_rec.url)||(*(cp1-1)==/)) { *cp1=\; if (log_rec.url[0]==\) { log_rec.url[0]=/; log_rec.url[1]=\; } break; } } lptr=lptr->next; } /* unescape referrer */ unescape(log_rec.refer); ...... 这一段,做了一些URL字符串中的字符转换工作,很长,我个人认为为了程序的模块化,结构化和可复用性,应该将这一段代码改为函数,避免主程序体太长,造成可读性不强和没有移植性,和不够结构化。跳过这一段乏味的代码,进入到下面一个部分---后处理。 看来现在高手都死光了,只剩下我等"搞"手了。 放分再说。
你说清楚一些啊
Encodes String objects so they can be read on all computers.
Syntax
escape(charstring)
The charstring argument is a String object to be encoded.
C语言里有这个函数么??? java也没有吧 java有个 Encoder类
你这个有点想 javascript呀
/*********************************************/
/* DO SOME PRE-PROCESS FORMATTING */
/*********************************************/ /* fix URL field */
cp1 = cp2 = log_rec.url;
/* handle null - case here... */
if (*++cp1 == -) { *cp2++ = -; *cp2 = \; }
else
{
/* strip actual URL out of request */
while ( (*cp1 != ) && (*cp1 != \) ) cp1++;
if (*cp1 != \)
{
/* scan to begin of actual URL field */
while ((*cp1 == ) && (*cp1 != \)) cp1++;
/* remove duplicate / if needed */
if (( *cp1==/) && (*(cp1+1)==/)) cp1++;
while ((*cp1 != )&&(*cp1 != \")&&(*cp1 != \))
*cp2++ = *cp1++;
*cp2 = \;
}
} /* un-escape URL */
unescape(log_rec.url); /* check for service (ie: http://) and lowercase if found */
if ( (cp2=strstr(log_rec.url,"://")) != NULL)
{
cp1=log_rec.url;
while (cp1!=cp2)
{
if ( (*cp1>=A) && (*cp1<=)) *cp1 += a-A;
cp1++;
}
} /* strip query portion of cgi scripts */
cp1 = log_rec.url;
while (*cp1 != \)
if (!isurlchar(*cp1)) { *cp1 = \; break; }
else cp1++;
if (log_rec.url[0]==\)
{ log_rec.url[0]=/; log_rec.url[1]=\; } /* strip off index.html (or any aliases) */
lptr=index_alias;
while (lptr!=NULL)
{
if ((cp1=strstr(log_rec.url,lptr->string))!=NULL)
{
if ((cp1==log_rec.url)||(*(cp1-1)==/))
{
*cp1=\;
if (log_rec.url[0]==\)
{ log_rec.url[0]=/; log_rec.url[1]=\; }
break;
}
}
lptr=lptr->next;
} /* unescape referrer */
unescape(log_rec.refer);
......
这一段,做了一些URL字符串中的字符转换工作,很长,我个人认为为了程序的模块化,结构化和可复用性,应该将这一段代码改为函数,避免主程序体太长,造成可读性不强和没有移植性,和不够结构化。跳过这一段乏味的代码,进入到下面一个部分---后处理。 看来现在高手都死光了,只剩下我等"搞"手了。
放分再说。