示例#1
0
文件: Url.php 项目: romeoz/rock-url
 protected static function modifyInternal(Url $self, array $modify)
 {
     $placeholders = [];
     foreach ($modify as $key => $value) {
         if (is_int($key)) {
             if (empty($value)) {
                 continue;
             }
             if ($value === '!#') {
                 $self->removeFragment();
                 continue;
             }
             if ($value === '!') {
                 $self->removeQuery();
                 continue;
             }
             if ($value[0] === '!') {
                 $self->removeQueryParams([mb_substr($value, 1, mb_strlen($value, 'UTF-8'), 'UTF-8')]);
                 continue;
             }
             continue;
         }
         if ($key === '#') {
             $self->setFragment($value);
             continue;
         }
         if ($key[0] === '@') {
             $self->{substr($key, 1)} = $value;
             continue;
         }
         if ($key[0] === '+') {
             $placeholders[mb_substr($key, 1, mb_strlen($key, 'UTF-8'), 'UTF-8')] = $value;
             continue;
         }
         $self->addQueryParams([$key => $value]);
     }
     $self->replace($placeholders);
     return $self;
 }