需要帮助的一段代码从PHP 5社交网络


need help on a piece of code from PHP 5 Social Networking

我正在尝试更高级的php,我拿起了Michael Peacock的书php 5 Social Networking。虽然这本书看起来很有趣,但它并没有涉及到代码的细节。我要求的函数是

    public function getURLData()
{
    $urldata = ( isset( $_GET['page'] ) ) ? $_GET['page'] : '' ;
    $this->urlPath = $urldata;
    if( $urldata == '' )
    {
        $this->urlBits[] = '';
        $this->urlPath = '';
    }
    else
    {
        $data = explode( '/', $urldata );
        while ( !empty( $data ) && strlen( reset( $data ) ) === 0 )
        {
            //NOTES: php array_shift — Shift an element off the beginning of array
            array_shift( $data );
        }

        while ( !empty( $data ) && strlen( end( $data ) ) === 0)
        {
            array_pop($data);
        }
        $this->urlBits = $this->array_trim( $data );
    }
}

这是一个更大类的一部分,$_GET['page']是这样的:relationships/mutual/3。我的主要问题是else部分发生了什么。我认为它正在删除所有空数组索引,但我也有疑问。

如有任何帮助,不胜感激。

编辑:添加array_trim函数,也是类的一部分

    private function array_trim( $array )
{
    while ( ! empty( $array ) && strlen( reset( $array ) ) === 0)
    {
        array_shift( $array );
    }
    while ( !empty( $array ) && strlen( end( $array ) ) === 0)
    {
        array_pop( $array );
    }
    return $array;
}
    public function getURLData()
{

获取'page',该数据可以通过$_GET从url获取:例如:http://mysite.com/?page=contact

如果'page'已设置,则分配给$urldata,否则$urldata= "

    $urldata = ( isset( $_GET['page'] ) ) ? $_GET['page'] : '' ;
    $this->urlPath = $urldata;
    if( $urldata == '' )
    {
        $this->urlBits[] = '';
        $this->urlPath = '';
    }
    else
    {

现在正在创建一个数组,其中包含来自$urldata的所有子字符串,并由'/'分割

        $data = explode( '/', $urldata );

如果数组$data不为空(否则访问不存在的元素会引发异常)或第一个元素的长度等于0,则从数组中删除第一个元素。

        while ( !empty( $data ) && strlen( reset( $data ) ) === 0 )
        {
            //NOTES: php array_shift — Shift an element off the beginning of array
            array_shift( $data );
        }

如果数组$data不为空(否则访问不存在的元素会引发异常)或最后一个元素的长度等于0,则从数组中删除最后一个元素。

        while ( !empty( $data ) && strlen( end( $data ) ) === 0)
        {
            array_pop($data);
        }

array_trim是一个自定义函数,不确定是什么,但可能也会做一些修剪

        $this->urlBits = $this->array_trim( $data );
    }

}

相关文章: