Enclose PHP variable in Html heading

I am trying to enclose PHP variable in Html h1 Heading.

Code is very simple

$html .= "<a id='$id' class='$class' href='$href'>'$text</a>";

So, In the code above, $text variable show text in browser but it shows it as a link with no h1, p or span tag.

I want $text tag to enclose in h1 or p tag. I tried $html .= "<h1><a id='$id' class='$class' href='$href'>'$text</a></h1>";

But its showing random text on browser. Anyone know what's the correct syntax to enclose it in h1 tag?

Full code: (See line 180)

<?php


$wpa_version = '3.1';

# Pre-2.6 compatibility (from WP codex)
if ( ! defined( 'WP_CONTENT_URL' ) )
define( 'WP_CONTENT_URL', get_option( 'siteurl' ) . '/wp-content' );
if ( ! defined( 'WP_CONTENT_DIR' ) )
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
if ( ! defined( 'WP_PLUGIN_URL' ) )
define( 'WP_PLUGIN_URL', WP_CONTENT_URL. '/plugins' );
if ( ! defined( 'WP_PLUGIN_DIR' ) )
define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' );
if ( ! defined( 'WPAUDIO_URL' ) )
define( 'WPAUDIO_URL', WP_PLUGIN_URL . '/wpaudio-mp3-player' );

## Get WPaudio's options from DB (or create them if not found) $wpa_options = wpaOptions();

## WP handlers - add WPaudio processing at necessary events
# If it's not an admin page, get everything for the player
if ( !is_admin() ) {
# Calling scripts
add_action('init', 'wpaLibraries');
# Add header action to include CSS and JS vars
add_action('wp_head', 'wpaHead');
# Add shortcode for WPaudio player
add_shortcode('wpaudio', 'wpaShortcode');
# Add filter for shortcode in excerpt and widgets
add_filter('the_excerpt', 'do_shortcode');
add_filter('widget_text', 'do_shortcode');
# Add filter for non-shortcode substitutes (including excerpts and widgets)
if ($wpa_options['wpa_tag_audio']) {
	add_filter('the_content', 'wpaFilter');
	add_filter('the_excerpt', 'wpaFilter');
	add_filter('widget_text', 'wpaFilter');
}
}
# Add admin
add_action('admin_menu', 'wpa_menu');
# Add track
if ($wpa_options['wpa_track_permalink']) add_action('publish_post', 'wpaPostNew');

function wpaOptions(){
## WPA options and defaults
global $wpa_version;
$wpa_options = Array(
	'wpa_version' => $wpa_version,
	'wpa_pref_link_mp3' => 0,
	'wpa_tag_audio' => 0,
	'wpa_track_permalink' => 1,
	'wpa_style_text_font' => 'Sans-serif',
	'wpa_style_text_size' => '18px',
	'wpa_style_text_weight' => 'normal',
	'wpa_style_text_letter_spacing' => 'normal',
	'wpa_style_text_color' => 'inherit',
	'wpa_style_link_color' => '#24f',
	'wpa_style_link_hover_color' => '#02f',
	'wpa_style_bar_base_bg' => '#eee',
	'wpa_style_bar_load_bg' => '#ccc',
	'wpa_style_bar_position_bg' => '#46f',
	'wpa_style_sub_color' => '#aaa'
	);
	if ( $wpa_options_db = get_option( 'wpaudio_options' ) ) {
	foreach ( $wpa_options as $key => $value ) {
		if ( isset($wpa_options_db[$key]) ) {
			$wpa_options[$key] = $wpa_options_db[$key];
		}
	}
	}
	else {
	# Get legacy options and remove if they exist
	if ( get_option('wpa_tag_audio') ) {
		foreach ($wpa_options as $key => $value) {
			$wpa_option_old_db = get_option($key);
			if ( $wpa_option_old_db !== false && $wpa_option_old_db !== '' ) {
				$wpa_options[$key] = $wpa_option_old_db;
			}
			delete_option($key);
		}
	}
	# Create wpaudio_options
		add_option('wpaudio_options', $wpa_options, '', 'no');
		//update_option('wpaudio_options', $wpa_options);
	}
	return $wpa_options;
}

## Built-in libraries
function wpaLibraries(){
global $wpa_version;
//wp_deregister_script( 'jquery' );
//wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js', '1.4.3' );
	if ( version_compare( get_bloginfo( 'version' ), '2.8', '>=' ) ) {
	if ( WP_DEBUG === false ) {
		wp_register_script( 'wpaudio', WPAUDIO_URL . '/wpaudio.min.js', Array('jquery'), $wpa_version, true );
	}
	else {
		wp_register_script( 'wpaudio', WPAUDIO_URL . '/wpaudio.js', Array('jquery'), $wpa_version, true);
	}
	wp_enqueue_script( 'wpaudio' );
	}
	else {
	wp_enqueue_script('jquery');
	add_action('wp_footer', 'wpaFooterForOldVersions');
	}
}

## WPaudio style, jQuery, SWFObject
function wpaHead(){
global $wpa_options;
# Put all styles into the _wpaudio settings object
$style = '';
foreach ( $wpa_options as $key => $value ) {
	$exploded = explode('_', $key, 3);
	if ( $exploded[1] == 'style' ) {
		$style .= $exploded[2] . ":'$value',";
	}
}
$style = trim( $style, ',' );
$style = '{' . $style . '}';
# Common JS
$wpa_pref_link_mp3 = ($wpa_options['wpa_pref_link_mp3']) ? 'true' : 'false';
$head = "<script type='text/javascript'>/* <![CDATA[ */ var _wpaudio = {url: '" . WPAUDIO_URL . "', enc: {}, convert_mp3_links: $wpa_pref_link_mp3, style: $style}; /* ]]> */</script>";
echo $head;
}

function wpaFooterForOldVersions() {
echo '<script type="text/javascript" src="' . WPAUDIO_URL . '/wpaudio.min.js"></script>';
}

# Used only for wpaudio shortcode tags
function wpaShortcode($atts){
# Convert shortcodes to WPaudio player depending on settings
extract(shortcode_atts(Array(
	'url' => false,
	'text' => false,
	'dl' => true,
	'autoplay' => false
), $atts));
# If no url, return with nothing
if (!$url)
	return;
# Get player HTML and JS
return wpaLink($url, $text, $dl, $autoplay);
}

# Make WPA link
function wpaLink($url, $text = false, $dl = true, $autoplay = false) {
$id = uniqid('wpaudio-');
$class = 'wpaudio';
$html = '';
# Handle dl URLs and no dl players
if ($dl == '0') {
	$js_url = wpaUnicode($url);
	$href = '#';
	$class .= ' wpaudio-nodl';
}
elseif (is_string($dl)) {
	$js_url = wpaUnicode($url);
	$href = $dl;
}
else {
	$href = $url;
}
if (isset($js_url)) {
	$class .= ' wpaudio-enc';
	$html .= "<script type='text/javascript'>_wpaudio.enc['$id'] = '$js_url';</script>";
}
# Handle blank text
if (!$text) {
	$text = basename($url);
	$class .= ' wpaudio-readid3';
}
# Autoplay
if ($autoplay == '1') {
	$class .= ' wpaudio-autoplay';
}
$html .= "<a id='$id' class='$class' href='$href'>$text</a>";
return $html;
}

# Used for audio tags
function wpaFilter($content){
## Convert audio tags and links to WPaudio player depending on settings
$tag_regex = '/\[audio:(.*?)\]/';
$tag_match = preg_match_all($tag_regex, $content, $tag_matches);
# Replace audio tags with player links
if ($tag_match){
	foreach ($tag_matches[1] as $key => $value){
		# This is one tag, first get parameters and URLs
		$params = explode('|', $value);
		$clips = Array('urls' => Array(), 'titles' => Array(), 'artists' => Array());
		$clips['urls'] = explode(',', $params[0]);
		# Process extra parameters if they exist
		for ($i=1; $i<count($params); $i++) {
			# Get the parameter name and value
			$param = explode('=', $params[$i]);
			if ($param[0] == 'titles' || $param[0] == 'artists')
				$clips[$param[0]] = explode(',', $param[1]);
		}
		# Get player(s)
		$player = '';
		foreach ($clips['urls'] as $ukey => $uvalue) {
			$text = '';
			$text .= (isset($clips['artists'][$ukey])) ? $clips['artists'][$ukey] : '';
			$text .= (isset($clips['artists'][$ukey]) && isset($clips['titles'][$ukey])) ? ' - ' : '';
			$text .= (isset($clips['titles'][$ukey])) ? $clips['titles'][$ukey] : '';
			if (!$text) $text = false;
			$player .= wpaLink($uvalue, $text);
		}
		$content = str_replace($tag_matches[0][$key], $player, $content);
	}
}
return $content;
}

# Convert string to unicode (to conceal mp3 URLs)
include 'php-utf8/utf8.inc';
function wpaUnicode($str){
$uni = utf8ToUnicode(utf8_encode($str));
$output = '';
foreach ($uni as $value){
	$output .= '\u' . str_pad(dechex($value), 4, '0', STR_PAD_LEFT);
}
return $output;
}

## WP admin menu
function wpa_menu() {
add_options_page('WPaudio Options', 'WPaudio', 'switch_themes', __FILE__, 'wpa_menu_page');
}
function wpa_menu_page() {
global $wpa_options;
if ($_POST) {
	# Checkboxes need values
	$wpa_checkboxes = Array(
		'wpa_pref_link_mp3',
		'wpa_tag_audio',
		'wpa_track_permalink'
	);
	foreach ($wpa_checkboxes as $value) {
		$_POST[$value] = (isset($_POST[$value]) && $_POST[$value]) ? 1 : 0;
	}
	# Now process and save all options
	foreach ($wpa_options as $key => $value) {
		if (isset($_POST[$key]) && !is_null($_POST[$key]) && $_POST[$key] !== '')
			$wpa_options[$key] = $_POST[$key];
	}
	update_option('wpaudio_options', $wpa_options);
}
wpaOptions();

Answers

Change this:

$html .= "<a id='$id' class='$class' href='$href'>'$text</a>";


To

$html .= "<a id=" . $id . " class=" . $class . "href=" . $href . ">" . $text . "</a>";

You need to use the same quotes you used to start your string

Posted on by Lemuel Botha

Relevant tags