OSDN Git Service

uri_pickup(): Correct a referense trouble (that effects customise-purpose user only...
authorhenoheno <henoheno>
Tue, 30 Dec 2008 11:13:49 +0000 (20:13 +0900)
committerhenoheno <henoheno>
Tue, 30 Dec 2008 11:13:49 +0000 (20:13 +0900)
spam/SpamPickupTest.php
spam/spam_pickup.php

index 8f0d5ec..98d034b 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-// $Id: SpamPickupTest.php,v 1.5 2008/12/27 11:50:55 henoheno Exp $
+// $Id: SpamPickupTest.php,v 1.6 2008/12/30 11:13:49 henoheno Exp $
 // Copyright (C) 2007 heno
 //
 // Design test case for spam.php (called from runner.php)
@@ -316,6 +316,19 @@ EOF;
                //$results = uri_pickup_normalize(uri_pickup($test_string));
                //$this->assertEquals('percent-encoded.org',  $results[0]['host']);
 
+               // Host: Without path
+               $test_string = ' http://nopathstring.com ';
+               $results = uri_pickup($test_string);
+               $this->assertEquals('', $results[0]['path']);
+               $this->assertEquals('', $results[0]['file']);
+               $results[0]['path'] = '/';
+               $this->assertEquals('', $results[0]['file'], '[Seems referense trouble]');
+               //
+               $results = uri_pickup($test_string);
+               $results = uri_pickup_normalize($results);
+               $this->assertEquals('/',$results[0]['path']);
+               $this->assertEquals('', $results[0]['file']);
+
                // Host: Underscore
                $test_string = ' http://under_score.org/fobar.html ';
                $results = uri_pickup_normalize(uri_pickup($test_string));
index 09f52cb..3467348 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-// $Id: spam_pickup.php,v 1.63 2008/12/27 11:50:21 henoheno Exp $
+// $Id: spam_pickup.php,v 1.64 2008/12/30 11:13:49 henoheno Exp $
 // Copyright (C) 2006-2007 PukiWiki Developers Team
 // License: GPL v2 or (at your option) any later version
 //
@@ -42,18 +42,18 @@ function uri_pickup($string = '')
                 $string, $array, PREG_SET_ORDER | PREG_OFFSET_CAPTURE
        );
 
-       // Format the $array
+       // Reformat the $array
        static $parts = array(
                1 => 'scheme', 2 => 'userinfo', 3 => 'host', 4 => 'port',
                5 => 'path', 6 => 'file', 7 => 'query', 8 => 'fragment'
        );
-       $default = array('');
+       $default = array(0 => '', 1 => -1);
        foreach(array_keys($array) as $uri) {
                $_uri = & $array[$uri];
                array_rename_keys($_uri, $parts, TRUE, $default);
                $offset = $_uri['scheme'][1]; // Scheme's offset = URI's offset
                foreach(array_keys($_uri) as $part) {
-                       $_uri[$part] = & $_uri[$part][0];       // Remove offsets
+                       $_uri[$part] = $_uri[$part][0]; // Remove offsets
                }
        }
 
@@ -792,8 +792,9 @@ function spam_uri_pickup($string = '', $method = array())
        }
 
        // Remove 'offset's for area_measure()
-       foreach(array_keys($array) as $key)
+       foreach(array_keys($array) as $key) {
                unset($array[$key]['area']['offset']);
+       }
 
        return $array;
 }