2012-09-23 31 views
2

我想從我的「_images」文件夾回聲圖像的圖像,但如果我寫了下面的代碼,它只是爲我的網站:如何呼應與PHP

echo '<img src="http://mywebsite.com/mytheme/wp-content/themes/my theme/_images/project3image1.jpg">'; 

我已經它改變了這個,所以當別人用我的主題,它需要他們自己的網站目錄:

echo '<img src="<?php bloginfo('stylesheet_directory'); ?>/_images/project3image1.jpg">'; 

但一定有什麼不對的代碼時,我把和預覽我的網站,它給了我這個錯誤:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/content/32/9825632/html/bomb/wp-content/themes/bomb/header.php on line 101 

我是一個php noob所以它可能是一個明顯的錯誤!

回答

5

您已經在PHP /呼應的東西出來,所以你不需要使用PHP標籤:

echo '<img src="' . bloginfo('stylesheet_directory') . '/_images/project3image1.jpg">'; 
3

不要用代碼混合在一起的標記。你正在尋求麻煩,而且這一切都會失去可讀性。使用printf這樣的:

printf('<img src="%s/_images/project3image1.jpg">', bloginfo('stylesheet_directory')); 

但你真正的問題是嵌套引號。如果您使用'來分隔字符串的界限,如:

'foo' 

那麼如果字符串內容包含'太:

'foo'bar' 

它必須被轉義。像這樣:

'foo\'bar' 

否則您的內容引號將被視爲該字符串的收盤報價。或者你可以使用"代替:

"foo'bar" 

但同樣 - 如果你的字符串內容包含"那麼它必須被轉義:

"foo\"bar" 

如果字符串包含兩個"',那麼你只需要逃跑那一個是字符串分隔符,即:

'foo"bar\'foo' 

"foo'bar\"foo" 
0

要使用的代碼的第二風格你必須先關閉PHP標籤:

//...your php code before echoing the img 

    //here you close the tag 
    ?> 

    <img src="<?=bloginfo('stylesheet_directory')?>/_images/project3image1.jpg" /> 

    <?php //here you open it again 

    //your rest php code... 

任何地方在你的PHP代碼,如果你想呼應的一些HTML,只需關閉PHP的標籤,寫你的html並再次打開php標籤。但是最好不要混合使用html和php。嘗試將所有的PHP代碼寫在你的文件的開頭,並在所有的HTML之後。在你的PHP代碼中使用動態值創建變量,並在html內部注入php代碼,將它們輸出到任何屬性或標記內容中。