2014-11-06 149 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; 
}