2014-11-06 147 views
1

我寫了這段代碼來查看設置爲私人的個人資料圖片。但是每次我必須訪問它時,我都必須在XAMPP上啓用Apache。而且,在沒有安裝Apache的計算機上它幾乎沒有用處。所以我想用JavaScript編寫它,但找不到strstr()函數的等價物。PHP的strstr()等效於JavaScript

有人請讓我知道,如果有一個等值或替代?

代碼:

<?php 
    //haystack 
    $_POST['theaddress'] ='160x160/photo.jpg'; 

    //return all after the needle '160x160/', inclusive 
    $varA = strstr($_POST['theaddress'], '160x160/'); 

    //build new URL 
    $varA = "https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-ash3/t1.0-9"."$varA"; 

    header("Location: $varA"); 
?> 
+5

你爲什麼不使用'的indexOf()'? – 2014-11-06 14:46:52

+0

https://developer.mozilla.org/en-US/docs/Web/ JavaScript/Reference/Global_Objects/String/indexOf – 2014-11-06 14:47:16

+1

谷歌顯示你的第一個結果是indexOf ...你只需要鍵入「javascript strstr」... – oopbase 2014-11-06 14:47:54

回答

1

JavaScript字符串的indexOf()功能應該滿足您的所有要求

下一個例子在JavaScript中的功能與PHP中的功能幾乎相同。請記住,您需要確保您有方法將$_POST['theaddress']傳遞給您的此功能。 (例如使用PHP setcookie()功能,然後在JavaScript代碼讀取值

function reload(fileName) { 
    // define server address variable 
    var serverAddress = "https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-ash3/t1.0-9"; 

    // get the filename 
    var fileName = fileName.indexOf("160x160/"); 

    // set new location based on server address and filename 
    location.href = serverAddress + fileName; 
} 
+1

http://jsfiddle.net/danielvictorg/daog571x/ 很醜的代碼,但它的工作原理。使用大部分代碼。謝謝! 認爲會有比'indexOf()'更明顯的函數,因爲它返回字符串的位置。 – 2014-11-06 16:22:17

2

你可以試試這個:

function strstr(haystack, needle, bool) { 
    // Finds first occurrence of a string within another 
    // 
    // version: 1103.1210 
    // discuss at: http://phpjs.org/functions/strstr // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 
    // + bugfixed by: Onno Marsman 
    // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 
    // *  example 1: strstr(‘Kevin van Zonneveld’, ‘van’); 
    // *  returns 1: ‘van Zonneveld’ // *  example 2: strstr(‘Kevin van Zonneveld’, ‘van’, true); 
    // *  returns 2: ‘Kevin ‘ 
    // *  example 3: strstr(‘[email protected]’, ‘@’); 
    // *  returns 3: ‘@example.com’ 
    // *  example 4: strstr(‘[email protected]’, ‘@’, true); // *  returns 4: ‘name’ 
    var pos = 0; 

    haystack += ""; 
    pos = haystack.indexOf(needle); if (pos == -1) { 
     return false; 
    } else { 
     if (bool) { 
      return haystack.substr(0, pos); 
     } else { 
      return haystack.slice(pos); 
     } 
    } 
} 

來源:http://phpjs.org/functions/strstr/

+0

你的實際來源是這個http://stackoverflow.com/questions/7015181/jquery-or-javascript-strstr,不是嗎? ;-) – oopbase 2014-11-06 14:49:56

+0

@ Forlan07不,我的來源是谷歌使用「strstr js」的第一個結果 – 2014-11-06 14:51:12

0
var string='aadsasdsad160x160/saddas' 
    console.log(string.indexOf('160x160/')) 

這將輸出10

0

試試這個

String.prototype.strstr = function(search) { 
    var position = this.indexOf(search); 
    if (position == -1) { 
     // not found 
     return false; 
    } 

    return this.slice(position); 
}; 

var x = 'Hello cruel world'; 
alert(x.strstr('cruel')); 

例這裏http://jsfiddle.net/bsr3jcuw/

0

您可以創建這樣一個功能:

function strstr(haystack, needle, bool) { 

    var pos = 0; 

    haystack += ''; 
    pos = haystack.toLowerCase().indexOf((needle + '').toLowerCase()); 
    if (pos == -1) { 
     return false; 
    } else { 
     if (bool) { 
      return haystack.substr(0, pos); 
     } else { 
      return haystack.slice(pos); 
     } 
    } 
} 

例1:

stristr( '凱文面包車Zonneveld', '凡');

返回:'van Zonneveld'。

例2:

stristr( '凱文面包車Zonneveld', 'VAN',TRUE);

回報: '凱文'

參考:http://phpjs.org/functions/stristr/

0

像往常一樣,當我得到一個解決方案已經提供..

function strstr(haystack, needle, before_needle) { 
    if(haystack.indexOf(needle) >= 0) 
     return before_needle ? haystack.substr(0, haystack.indexOf(needle)) 
       : haystack.substr(haystack.indexOf(needle)); 
    return false; 
}