正则表达式问题!100分送上

MonsterLau 2004-11-12 02:41:31
我的主要想法是优化输出HTML的代码。

删除所有空白字符, 但是必须保留 <textarea .... > 这里的\n 换行符号 </textarea>
由于html 是不认大于一个以上的空格, 如: i am jerry. 输出显示时,只显示 i am jerry. 所以,也要把这里中间的空格全部变为一个.

希望能够得到一个好的答案~~~~~
...全文
320 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
MonsterLau 2004-11-23
  • 打赏
  • 举报
回复
那一段是没有加密. 后面的有啊, 看到了吗?
xuzuning 2004-11-19
  • 打赏
  • 举报
回复
<script><!--//window.status = '本站的网址是:souting.com,"souting"即"搜听"的拼音.请把souting.com介绍给您的朋友,谢谢您!'; function Uc(Url) { window.open('Playsong.asp?'+Url,'UrlCheck', 'resizable=yes');} function Ls(Lid) { window.open('Lyrics/'+Lid+'.htm','Lyricsee', 'scrollbars=yes,resizable=no,width=500,height=320,top=166,left=266');}//--></script>

并没有加密,也并没有缺少行结束符“;”
MonsterLau 2004-11-19
  • 打赏
  • 举报
回复
javascript加密只是简单的escape了

function Uc(str)
{
eval(unescape(str));
}


我想他加密的原因可能是: 不用考虑关闭 ";" 符号了. (我猜的)

老刀能否写一个处理, 跟他一样的出来呢? 考虑更完整, 实现更简单的.

谢了
ice_berg16 2004-11-18
  • 打赏
  • 举报
回复
javascript加密只是简单的escape了

function Uc(str)
{
eval(unescape(str));
}
MonsterLau 2004-11-18
  • 打赏
  • 举报
回复
xuzuning(唠叨) 大哥,
http://www.souting.com/Search.asp?Key=f&Type=Sn

你看看他的代码. JAVASCRIPT 的都是进行加密了.

如果能够做到呢? 就是利用 ob_start('OptiomizeHtml');// 截取HTML 代码, 然后对其进行操作.
如何可以实现想那网站一样的效果?

如能告知, 感恩不尽~~~~````
MonsterLau 2004-11-18
  • 打赏
  • 举报
回复
老刀同志果然爽~~`` 且很有见底

我先试试效果~~```

MonsterLau 2004-11-17
  • 打赏
  • 举报
回复
http://www.souting.com/index.htm

就和着个网站一样. 他输出的HTML 都是经过优化处理的.

大家帮帮忙了
MonsterLau 2004-11-17
  • 打赏
  • 举报
回复
ice_berg16(寻梦的稻草人)

用了你的函数, 网页全变了. 乱了套. 能否写一个完整的?

是优化HTML 输出的. 我用ob_start(OptimizeHtml);来截取 输出的HTML代码

然后用 function OptiomizeHtml 来做处理

能帮我写一个好的吗?
itian 2004-11-17
  • 打赏
  • 举报
回复
gz
xuzuning 2004-11-17
  • 打赏
  • 举报
回复
<?php
function OptiomizeHtml($text) {
return preg_replace_callback('/<(\w+).*>.*<\/\\1>/s','callback',$text);
}
//preg_replace_callback回调函数
function callback($regs) {
$p = array('/ +/','/^ +/m','/[\r\n]+/');
$r = array(' ','','');
if(strtolower($regs[1]) != 'textarea')
return preg_replace($p,$r,$regs[0]); //不是textarea对象则连续空格换成一个空格;删去行首空格;删去换行符
return $regs[0];
}

ob_start('OptiomizeHtml');//来截取 输出的HTML代码
?>
注意:按此法操作时,当输出中有js代码时一定不能少了行结束符“;”否则要象textarea一样做排除处理
-神仙- 2004-11-17
  • 打赏
  • 举报
回复
preg_replace("/[ ]+/"," ")
MonsterLau 2004-11-13
  • 打赏
  • 举报
回复
ice_berg16(寻梦的稻草人)

我回家后測試一下。謝謝先
ice_berg16 2004-11-12
  • 打赏
  • 举报
回复
$str = preg_replace("|<(.+)>(.+)</\\1>|iseU", "replaceIt('\\1','\\2')", $str);

function replaceIt($tagName, $innerText)
{
echo $tagName;
if(strtolower($tagName) != "textarea")
{

$innerText = preg_replace("|([\s])+|s", "\040", $innerText);
}
return "<$tagName>$innerText</$tagName>";
}
jxflll 2004-11-12
  • 打赏
  • 举报
回复
帮你顶一下!
MonsterLau 2004-11-12
  • 打赏
  • 举报
回复
我不太理解你的想法。

我想你可以把他当成UBB 一样来看吧?

你写出表达式来看看
qingxia 2004-11-12
  • 打赏
  • 举报
回复
你不是怕text里的\n\r被删除吗?
通过我的方法可以防止删除text里的这些符号啊
MonsterLau 2004-11-12
  • 打赏
  • 举报
回复
qingxia(青虾)
你可能没有理解我说的。按你说的是很多余的动作啊。。。。555
qingxia 2004-11-12
  • 打赏
  • 举报
回复
先把<textarea .... > 。。。。 </textarea>提取,同时替换成[text]之类的其他标记
再删除所以空白文件
删除完之后,还原<textarea .... > 。。。。 </textarea>

既然不会一次性完事的正则,就变相解决,呵呵

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧