WordPress.org

Ready to get started?Download WordPress

Forums

PHP Snippets
Case sensitive variables (3 posts)

  1. AlexHendersonGeordieSoft
    Member
    Posted 2 years ago #

    Hi,

    When I pass a variable to a snippet shortcode if it has case-sensitivity this is lost in the PHP.

    eg.
    This is OK
    [my-snippet myvar=myval]

    This doesn't work
    [my-snippet myVar=myval]

    Just thought I'd let you know. Could easily be me doing something wrong :)

    Alex

    http://wordpress.org/extend/plugins/php-snippets/

  2. fireproofsocks
    Member
    Plugin Author

    Posted 2 years ago #

    Normally this type of thing should be filed as a bug report: http://code.google.com/p/wordpress-php-snippets/issues/list

    I looked into this... the culprit is WordPress. Check out wp-includes/shortcodes.php:

    function shortcode_parse_atts($text) {
    	$atts = array();
    	$pattern = '/(\w+)\s*=\s*"([^"]*)"(?:\s|$)|(\w+)\s*=\s*\'([^\']*)\'(?:\s|$)|(\w+)\s*=\s*([^\s\'"]+)(?:\s|$)|"([^"]*)"(?:\s|$)|(\S+)(?:\s|$)/';
    	$text = preg_replace("/[\x{00a0}\x{200b}]+/u", " ", $text);
    	if ( preg_match_all($pattern, $text, $match, PREG_SET_ORDER) ) {
    		foreach ($match as $m) {
    			if (!empty($m[1]))
    				$atts[strtolower($m[1])] = stripcslashes($m[2]);
    			elseif (!empty($m[3]))
    				$atts[strtolower($m[3])] = stripcslashes($m[4]);
    			elseif (!empty($m[5]))
    				$atts[strtolower($m[5])] = stripcslashes($m[6]);
    			elseif (isset($m[7]) and strlen($m[7]))
    				$atts[] = stripcslashes($m[7]);
    			elseif (isset($m[8]))
    				$atts[] = stripcslashes($m[8]);
    		}
    	} else {
    		$atts = ltrim($text);
    	}
    	return $atts;
    }

    All those instances of strtolower is what's causing this. It's good to know... I had no idea WP was forcing arguments to be lower-case.... that's kinda dumb. I filed a bug in the WordPress bug-tracker: http://core.trac.wordpress.org/ticket/20077

  3. AlexHendersonGeordieSoft
    Member
    Posted 2 years ago #

    Hi Mr Socks,

    Thanks for looking into this. One to watch out for!

    Best wishes,
    Alex

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic