2010-08-21 43 views
2

每個網址都顯示一個數字,但是當我回顯$ z時,它顯示的是0而不是所有數字組合的大組。php添加數字

<?php 
$a = "<script type=\"text/javascript\" src=\"http://modmyi.com/cstats/index.php?package=Battery+Theme&output=text\"></script>"; 
$b = "<script type=\"text/javascript\" src=\"http://modmyi.com/cstats/index.php?package=Connection+Theme&output=text\"></script>"; 
$c = "<script type=\"text/javascript\" src=\"http://modmyi.com/cstats/index.php?package=Icon+Theme&output=text\"></script>"; 
$d = "<script type=\"text/javascript\" src=\"http://modmyi.com/cstats/index.php?package=Percent+Theme&output=text\"></script>"; 
$e = "<script type=\"text/javascript\" src=\"http://modmyi.com/cstats/index.php?package=StatusNotifier+Theme&output=text\"></script>"; 
$f = "<script type=\"text/javascript\" src=\"http://modmyi.com/cstats/index.php?package=c-note&output=text\"></script>"; 
$g = "<script type=\"text/javascript\" src=\"http://modmyi.com/cstats/index.php?package=iAcces+c-note+KB&output=text\"></script>"; 
$h = "<script type=\"text/javascript\" src=\"http://modmyi.com/cstats/index.php?package=c-note+Lite&output=text\"></script>"; 

$z = $a+$b+$c+$d+$e+$f+$g+$h; 
echo $z; 
?> 
+0

,你能否告訴調用'HTTP的輸出://modmyi.com/cstats/index.php包=電池+主題和輸出= text'?它只是*數字作爲一個字符串? – strager 2010-08-21 10:44:01

回答

2

你混合服務器端腳本(PHP )與客戶端腳本(JS)。

當您請求一個PHP頁面時,該頁面被服務器解釋,然後服務器將其提供給客戶端,例如HTML文檔。這就是爲什麼如果您在瀏覽器中查看PHP頁面的源代碼,您將看不到任何PHP代碼。

這些<script>將在客戶端上執行,處理完PHP後。當服務器正在處理你的PHP時,這些只是字符串,所以你只需要添加一些字符串(結果爲0)。

所以,如果你需要PHP中的總和,你不應該使用JS來調用這些頁面。

有幾種方法可以做到這一點,但我會使用cURL來獲取頁面結果(例如參見this example),然後對結果進行求和(在求和之前必須將其轉換爲int)。

2

你想CONCAT字符串,但你添加字符串。首先將字符串轉換爲數字並返回一個數字。

使用字符串concatenation operator (.)代替:

$z = $a.$b.$c.$d.$e.$f.$g.$h; 

或者插值:

$z = "$a$b$c$d$e$f$g$h"; 

或者使用一個數組,並加入:

$z = implode('', array($a, $b, $c, $d, $e, $f, $g, $h)); 
+1

嗯,我想OP是希望將這些腳本顯示的數字加在一起。這可能不是完全可能的,但是這與任何人將要得到的信息一樣接近。 – Sam152 2010-08-21 10:41:51

+0

@ Sam152,哦,嗯。我不知道;如果他們希望他們的問題得到更好的回答,他們需要提供更多信 – strager 2010-08-21 10:43:24

0

除了說什麼strager,IMO你會有點不對勁通過使用字符串模板化HTML一起。 PHP是一種模板語言,你還不如用它:

<?php 
    $packages= array(
     'Battery Theme', 'Connection Theme', 'Icon Theme', 'Percent Theme', 
     'StatusNotifier Theme', 'c-note', 'iAcces c-note KB', 'c-note Lite' 
    ); 
?> 
<?php foreach ($packages as $package) { ?> 
    <?php $src= 'http://modmyi.com/cstats/index.php?package='.urlencode($package).'&output=text'; ?> 
    <script type="text/javascript" src="<?php echo htmlspecialchars($src); "></script> 
<?php } ?> 

(注意HTML編碼的,以避免在src無效轉義&號)

1

我認爲這是解決

<?php 
$a = file_get_contents("http://modmyi.com/cstats/index.php?package=Battery+Theme&output=text"); 
$b = file_get_contents("http://modmyi.com/cstats/index.php?package=Connection+Theme&output=text"); 
...... 
$z = $a+$b+$c+$d+$e+$f+$g+$h; 
echo $z; 
?> 
+0

我認爲提問者希望'$ z'將所有的數字保存爲一個列表,所以'''''連接操作符可能更合適。 – 2010-08-21 11:15:17

+0

我認爲他/她想從這些網址獲得數字並計算總和。 – 2010-08-21 12:01:23