2012-03-23 214 views
1

親愛的所有專家我有一個問題,比較我的字符串從document.write與PHP的字符串,當我使用var_dump(變量)我看到字符串是不一樣的即使回聲值是相同的,任何知道使它工作?無法比較從document.write字符串和php的字符串

$resolution_width = "<script type='text/javascript'> document.write(window.screen.width); </script>"; 

$resolution_height = "<script type='text/javascript'>document.write('#'+window.screen.height+'#'); </script>"; 


$screen_width=$resolution_width; 
$screen_height=str_replace("#","",$resolution_height); 

echo var_dump($screen_width); 
$str='1280'; 
echo "<BR>"; 
echo "<BR>".var_dump($str); 

if($screen_width=='1440'){ 
    $width=1440; 
    echo $width; 
} 
elseif($screen_width=='1360'){ 
    $width=1360; 
    echo $width; 

} 
elseif($screen_width=='1280'){ 
    $width=1280; 
    echo $width; 

} 
elseif($screen_width=='1152'){ 
    $width=1152; 
    echo $width; 
} 
elseif($screen_width=='1024'){ 
    $width=1024; 
    echo $width; 
} 
elseif($screen_width=='800'){ 
    $width=800; 
    echo $width; 
} 

這是我的結果,當我嘗試輸出它,因爲它錯誤的每一次比較。 我覺得這個字符串是一樣的,但它可能有不同的轉換。

我的結果:

string(78) "1280" 
string(4) "1280" 
+3

這是根本不可能的:PHP工作在服務器上,JavaScript的工作在客戶端。您必須從JavaScript進行Ajax調用返回到單獨的PHP腳本。 – 2012-03-23 18:08:40

+0

你能告訴我的方式,請真正新的感謝事先 – 2012-03-23 18:10:23

+1

你不能在PHP中評估一個javascript表達式。 Javascript運行在瀏覽器上,而PHP運行在服務器上。如果你想知道客戶端的解決方案,創建一個小的HTML文件,它運行一些JavaScript來檢查分辨率,並重定向到一個PHP文件,並將分辨率作爲參數傳遞給它。 – Yaniro 2012-03-23 18:11:18

回答

1

<script>標籤內的代碼將不會運行,直到它在Web瀏覽器。 PHP生成一個文件發送到Web瀏覽器。然後,Web瀏覽器運行JavaScript。

沒有辦法找出php代碼中的屏幕寬度。但是,您可以使用javascript和css根據頁面加載後的屏幕寬度修改頁面佈局。

如果您嘗試根據屏幕寬度設置頁面的格式,那麼我會推薦使用Twitter Bootstrap。處理所有不同的屏幕尺寸可能會變得毛茸茸。有很多瀏覽器兼容性問題和其他併發症,一開始並不明顯。 Twitter上的人已經解決了他們,並共享了這個框架,以便您不必重複這些工作。

如果您不想使用Bootstrap框架,請使用CSS Media Queries

如果您需要將瀏覽器寬度發送到您的服務器的原因不同,然後ajax將是一個很好的方法來做到這一點。你將不得不有兩個PHP腳本。一個生成頁面,另一個處理ajax請求。如果你正在使用jQuery,你寫這樣的Ajax請求:

$(function() { 
    $.get('script_that_will_proccess_ajax.php', { width: window.screen.width, height: window.screen.height }) 
    .success{ function { 
     alert('it worked'); 
    }); 
}); 

查看文檔jQuery getjQuery post

+0

所以我需要使用ajax嗎?無論如何,我怎麼能分開