用于php中的痕迹的正则表达式

时间:2011-11-26 19:19:16

标签: php regex

我目前正在构建面包屑。它适用于

http://localhost/researchportal/proposal/

    <?php
            $url_comp = explode('/',substr($url,1,-1));
            $end = count($url_comp);        
            print_r($url_comp);
            foreach($url_comp as $breadcrumb) {                     
            $landing="http://localhost/";
            $surl .= $breadcrumb.'/';                               
                if(--$end)
                 echo '
                 <a href='.$landing.''.$surl.'>'.$breadcrumb.'</a>&raquo;';
                else
                 echo '
                 <a href='.$landing.''.$surl.' class="active">'.$breadcrumb.'</a>';
                };?>

但是当我输入http://localhost////researchportal////proposal//////////

所有格式都消失了,因为它混淆了我的代码。

我需要将网站路径放在像([1]->researchportal, [2]->proposal)这样的数组中 不管我放了多少斜杠。

那么$url_comp = explode('/',substr($url,1,-1));可以变成正则表达式来获得我想要的输出吗?

1 个答案:

答案 0 :(得分:0)

您不需要正则表达式。查看PHP手册中的htmlentities()和stripslashes()。正则表达式将返回它所说的任何布尔值,并且不会真正帮助您实现您想要做的事情。所有的正则表达式都可以让你说如果字符串匹配正则表达式做了什么。如果你在每个斜杠之间输入一个至少需要2个字符的正则表达式,那么任何时候任何人在那里放置多个连续的斜杠,if语句就会停止。

http://ca3.php.net/manual/en/function.stripslashes.php

http://ca3.php.net/manual/en/function.htmlentities.php

在php手册上找到了这个。

它使用简单的str_replace语句,修改它应该完全符合你的帖子要求。

    <?
    function stripslashes2($string) {
        $string = str_replace("\\\"", "\"", $string);
        $string = str_replace("\\'", "'", $string);
        $string = str_replace("\\\\", "\\", $string);
        return $string;
    }
    ?>