在Html标题中包含PHP变量

时间:2014-08-23 00:27:10

标签: php html

我试图在Html h1标题中附上PHP变量。

代码很简单

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

因此,在上面的代码中,$text变量在浏览器中显示文本,但它将其显示为没有h1,p或span标记的链接。

我希望$text标记包含在h1或p标记中。我试过了$html .= "<h1><a id='$id' class='$class' href='$href'>'$text</a></h1>";

但它在浏览器上显示随机文字。任何人都知道将它包含在h1标签中的正确语法是什么?

完整代码:(见第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();

1 个答案:

答案 0 :(得分:1)

改变这个:

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

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

您需要使用与开始字符串相同的引号