我需要测试是否有任何字符串'hello','i am','dumb'存在于名为$ ohreally的较长字符串中,如果其中一个存在,我的测试结束了,并且我知道这两个字符串都没有如果其中一个人有其他人将会发生.
在这些情况下,我要求您提供最有效的搜索方式,
strpos()3次这样?
if (strpos ($ohreally, 'hello')){return false;}
else if (strpos ($ohreally, 'i am')){return false;}
else if (strpos ($ohreally, 'dumb')){return false;}
else {return true;}
Run Code Online (Sandbox Code Playgroud)
还是一个preg_match?
if (preg_match('hello'||'i am'||'dumb', $ohreally)) {return false}
else {return true};
Run Code Online (Sandbox Code Playgroud)
我知道preg_match代码是错误的,如果有人能提供正确的版本,我真的很感激.
谢谢!
回答
请阅读cletus所说的内容和测试middaparka吼叫.我还做了一个mirco时间测试,在各种字符串,长短.有了这些结果
如果,您知道字符串值发生的概率从最可能到最小可能.(我没有注意到在命令正则表达式本身时,即在/hello|i am|dumb/或之间存在明显的不同/i am|dumb|hello/.
另一方面,在连续的strpos中,概率完全不同.例如,如果"你好"发生率为90%,"我是"7%,"哑巴"发生率为3%.您想组织代码以先检查'hello'并尽快退出该功能.
我的microtime测试显示了这一点.
对于在第一,第二和第三次strpos()执行中分别找到针的干草堆A,B和C,时间如下,
strpos:
A:0.00450秒// 1个strpos()
B:0.00911秒// 2个strpos()
C:0.00833秒// 3个strpos()
C:0.01180秒// 4个strpos()添加了一个额外的
对于preg_match:
A:0.01919秒// 1 preg_match()
B:0.02252秒// 1 preg_match()
C:0.01060秒// 1 preg_match()
正如数字显示的那样,strpos在4rth执行时速度更快,因此我将使用它而不是因为我只有3个子命令来检查:)
根据官方发布声明 1.4版本已重新写来,当我使用的在线版本与使用Closure Compiler压缩尚未关闭的编译器,我得到130个警告.
这是我使用的代码.
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// @code_url http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js
// ==/ClosureCompiler==
Run Code Online (Sandbox Code Playgroud)
据我所知,如果您将库包含在您的代码中,那么您将获得Closure Compiler的真正好处,因此它会删除未使用的函数.然而,我的测试表明,除了压缩图书馆本身之外我无法进一步发展.
我究竟做错了什么?任何形式的见解将不胜感激.
这段代码修剪了空白,(fyi:它被认为非常快)
function wSpaceTrim(s){
var start = -1,
end = s.length;
while (s.charCodeAt(--end) < 33 ); //here
while (s.charCodeAt(++start) < 33 ); //here also
return s.slice( start, end + 1 );
}
Run Code Online (Sandbox Code Playgroud)
while循环没有括号,我如何正确地为此代码添加括号?
while(iMean){
// like this;
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!
这是我到目前为止的代码,我想知道它是否正确?
$handle = fopen($file, 'w') or die("can't open file");
$closed = fclose($handle);
while($closed){
DOAWESOMETHINGS(); // btw I only want to have this run once for each handle
$closed = false;
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!
如果
$text = ' MEANINGFUL THINGS GO HERE ';
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到
$cleanText = 'MEANINGFUL THINGS GO HERE';
Run Code Online (Sandbox Code Playgroud)
我知道以下将删除所有的空格
$text=trim($text);
Run Code Online (Sandbox Code Playgroud)
但是如何将实际逃逸的空间纳入装饰呢?
Meaningful Things可以包含[shortcodes],HTML标签,以及转义字符.我需要保留这些.
任何帮助,将不胜感激.谢谢!
例如我怎么能正确写,
$a = 'cat-dog';
echo ((strpos($a, '-') !== false));
// and get true on screen.
Run Code Online (Sandbox Code Playgroud)
无需使用单独的变量来存储值.
非常感谢!
代码:
setInterval("doSomething()", 2000);
function doSomething(){alert('hi')}
Run Code Online (Sandbox Code Playgroud)
我一直在读这个,我只是无法得到这个例子:(
php ×4
javascript ×2
boolean ×1
compression ×1
filehandle ×1
jquery ×1
optimization ×1
performance ×1
readability ×1
search ×1
semantics ×1
setinterval ×1
string ×1
syntax ×1
trim ×1
while-loop ×1
whitespace ×1