计算机题 ?len(phpsubstr replace(replace(“*”,5),2,3))的显示结果 这怎么看

安徽省计算机二级VFP考试理论模拟试题2(附答案)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
安徽省计算机二级VFP考试理论模拟试题2(附答案)
上传于||文档简介
&&21年​安​徽​省​计​算​机​二​级​V​F​P​考​试​理​论​考​试​模​拟​试​题(​附​答​案​)
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩11页未读,继续阅读
你可能喜欢初级开发人员面试题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
初级开发人员面试题
上传于||文档简介
&&面​试​初​级​技​术​人​员​的​面​试​题
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
你可能喜欢Keyboard Shortcuts?
Next menu item
Previous menu item
Previous man page
Next man page
Scroll to bottom
Scroll to top
Goto homepage
Goto search(current page)
Focus search box
Change language:
Brazilian Portuguese
Chinese (Simplified)
substr_replace
substr_replace & 替换字符串的子串
substr_replace
$replacement
输入字符串。
of s can be provided, in which
case the replacements will occur on each string in turn. In this case,
the replacement, start
and length parameters may be provided either as
scalar values to be applied to each input string in turn, or as
s, in which case the corresponding array element will
be used for each input string.
replacement
替换字符串。
如果 start 为正数,替换将从 string 的 start 位置开始。
如果 start 为负数,替换将从 string 的倒数第 start 个位置开始。
如果设定了这个参数并且为正数,表示 string 中被替换的子字符串的长度。如果设定为负数,它表示待替换的子字符串结尾处距离 string 末端的字符个数。如果没有提供此参数,那么它默认为 strlen( string ) (字符串的长度)。当然,如果 length 为 0,那么这个函数的功能为将 replacement 插入到 string 的 start 位置处。
返回结果字符串。如果 string 是个数组,那么也将返回一个数组。
Example #1 substr_replace() 范例
&?php$var&=&'ABCDEFGH:/MNRPQR/';echo&"Original:&$var&hr&/&\n";/*&这两个例子使用&“bob”&替换整个&$var。*/echo&substr_replace($var,&'bob',&0)&.&"&br&/&\n";echo&substr_replace($var,&'bob',&0,&strlen($var))&.&"&br&/&\n";/*&将&“bob”&插入到&$var&的开头处。*/echo&substr_replace($var,&'bob',&0,&0)&.&"&br&/&\n";/*&下面两个例子使用&“bob”&替换&$var&中的&“MNRPQR”。*/echo&substr_replace($var,&'bob',&10,&-1)&.&"&br&/&\n";echo&substr_replace($var,&'bob',&-7,&-1)&.&"&br&/&\n";/*&从&$var&中删除&“MNRPQR”。*/echo&substr_replace($var,&'',&10,&-1)&.&"&br&/&\n";?&
Example #2
Using substr_replace() to replace multiple strings at
&?php$input&=&array('A:&XXX',&'B:&XXX',&'C:&XXX');//&A&simple&case:&replace&XXX&in&each&string&with&YYY.echo&implode(';&',&substr_replace($input,&'YYY',&3,&3))."\n";//&A&more&complicated&case&where&each&replacement&is&different.$replace&=&array('AAA',&'BBB',&'CCC');echo&implode(';&',&substr_replace($input,&$replace,&3,&3))."\n";//&Replace&a&different&number&of&characters&each&time.$length&=&array(1,&2,&3);echo&implode(';&',&substr_replace($input,&$replace,&3,&$length))."\n";?&
以上例程会输出:
A: YYY; B: YYY; C: YYY
A: AAA; B: BBB; C: CCC
A: AAAXX; B: BBBX; C: CCC
Note: 此函数可安全用于二进制对象。
- 子字符串替换
- 返回字符串的子串
It's worth noting that when start and length are both negative -and- the length is less than or equal to start, the length will have the effect of being set as 0.
&?php
substr_replace('eggs','x',-1,-1); substr_replace('eggs','x',-1,-2); substr_replace('eggs','x',-1,-2); ?&
&?php
substr_replace('eggs','x',-1,0); ?&
&?php
substr_replace('huevos','x',-2,-2); substr_replace('huevos','x',-2,-3); substr_replace('huevos','x',-2,-3); ?&
&?php
substr_replace('huevos','x',-2,0); ?&
Another note, if length is negative and start offsets the same position as length, length (yet again) will have the effect as being set as 0. (Of course, as mentioned in the manual, when length is negative it actually represents the position before it)
&?php
substr_replace('abcd', 'x', 0, -4); ?&
&?php
substr_replace('abcd','x',0,0); ?&
&?php
substr_replace('abcd', 'x', 1, -3); ?&
Same as:
&?php
substr_replace('abcd', 'x', 1, 0); ?&
I've just taken a look at the post by ntoniazzi and I have a very small correction to make.In the second if statement, it should be a triple equals, so:&?php if ($length === null) ?&It requires the triple equals, for the case of pure insertion, where $length = 0, the double equals, will catch this, causing the string to be cut short.& I hope this helps someone.
I have a little function that works like substr_replace ()& what I use for some purpose. Maybe someone needs it.&?phpfunction putinplace($string=NULL, $put=NULL, $position=false){& & $d1=$d2=$i=false;& & $d=array(strlen($string), strlen($put));& & if($position & $d[0]) $position=$d[0];& & for($i=$d[0]; $i &= $position; $i--) $string[$i+$d[1]]=$string[$i];& & for($i=0; $i&$d[1]; $i++) $string[$position+$i]=$put[$i];& & return $string;}$string='My dog dont love postman'; $put="'"; $position=10; print_r( putinplace($string, $put, $position) ); ?&RESULT: My dog don't love postmanThis is a small powerful function that performs its job flawlessly.
I recently ran across a situation where I need to strip a heavily nested html list such that only the top level was preserved.& I started with a regular expression solution, but found that I kept matching the wrong closing ul with an outer opening ul.This was my alternative solution, and it seems to work well:&?phpfunction stripNestedLists($str){& & $str2 = $str;& & $lastStr = $str2;& & & & do& & {& & & & $cul = strpos($str2, '&/ul&');& & & & $ul = 0;& & & & $lastUL = 0;& & & & do& & & & {& & & & & & $lastUL = $ul;& & & & & & $ul = strpos($str2, '&ul', $ul+1);& & & & }& & & & while ($ul !== false && $ul & $cul);& & & & & & $lastStr = $str2;& & & & $str2 = substr_replace($str2, '', $lastUL, $cul-$lastUL+5);& & & & $str2 = trim($str2);& & }& & while (strlen($str2) & 0);& & & & return $lastStr;}?&Hope this helps someone.
My problem was that substr_replace() always added $replacement, so i wrote my own function.This function only adds $replacement, if substr() took action.The parameter $length is optional - like substr()'s.Or I was too stupid using $start and $length...&?phpfunction substr_replace_provided($string,$replacement,$start,$length=NULL){& & $tmp=substr($string,$start,$length);& & if($string!==$tmp) {& & & & $string = $tmp.$replacement;& & }& & return $string;}?&
This will truncate a longer string to a smaller string of specified length while replacing the middle portion with a separator exactly in the middle.&?php$longString = 'abcdefghijklmnopqrstuvwxyzz.jpg';$separator = '/.../';$separatorlength = strlen($separator) ;$maxlength = 25 - $separatorlength;$start = $maxlength / 2 ;$trunc =& strlen($longString) - $maxlength;echo substr_replace($longString, $separator, $start, $trunc);?&
Forget all of the mb_substr_replace() implementations mentioned in this page, they're all buggy.Here is a version that mimics the behavior of substr_replace() exactly:&?phpif (function_exists('mb_substr_replace') === false){& & function mb_substr_replace($string, $replacement, $start, $length = null, $encoding = null)& & {& & & & if (extension_loaded('mbstring') === true)& & & & {& & & & & & $string_length = (is_null($encoding) === true) ? mb_strlen($string) : mb_strlen($string, $encoding);& & & & & & & & & & & & if ($start & 0)& & & & & & {& & & & & & & & $start = max(0, $string_length + $start);& & & & & & }& & & & & & & & & & & & else if ($start & $string_length)& & & & & & {& & & & & & & & $start = $string_length;& & & & & & }& & & & & & & & & & & & if ($length & 0)& & & & & & {& & & & & & & & $length = max(0, $string_length - $start + $length);& & & & & & }& & & & & & & & & & & & else if ((is_null($length) === true) || ($length & $string_length))& & & & & & {& & & & & & & & $length = $string_length;& & & & & & }& & & & & & & & & & & & if (($start + $length) & $string_length)& & & & & & {& & & & & & & & $length = $string_length - $start;& & & & & & }& & & & & & & & & & & & if (is_null($encoding) === true)& & & & & & {& & & & & & & & return mb_substr($string, 0, $start) . $replacement . mb_substr($string, $start + $length, $string_length - $start - $length);& & & & & & }& & & & & & & & & & & & return mb_substr($string, 0, $start, $encoding) . $replacement . mb_substr($string, $start + $length, $string_length - $start - $length, $encoding);& & & & }& & & & & & & & return (is_null($length) === true) ? substr_replace($string, $replacement, $start) : substr_replace($string, $replacement, $start, $length);& & }}?&
Almost... In the previous note, change this :&?php& & function mb_substr_replace($string, $replacement, $start, $length=null, $encoding=null) {& & & & if ($encoding == null) $encoding = mb_internal_encoding();& & & & if($start & 0) $start = mb_strlen($string) + $start;& & [...]?&
I don't know if this function is multibyte safe but I've written a function that will do the same in multibyte mode.&?phpif (!function_exists("mb_substr_replace")){&& function mb_substr_replace($string,$replacement,$start,$length=null,$encoding = null){& & & & if ($encoding == null){& & & & & & if ($length == null){& & & & & & & & return mb_substr($string,0,$start).$replacement;& & & & & & }& & & & & & else{& & & & & & & & return mb_substr($string,0,$start).$replacement.mb_substr($string,$start + $length);& & & & & & }& & & & }& & & & else{& & & & & & if ($length == null){& & & & & & & & return mb_substr($string,0,$start,$encoding).$replacement;& & & & & & }& & & & & & else{& & & & & & & & return mb_substr($string,0,$start,$encoding). $replacement. mb_substr($string,$start + $length,mb_strlen($string,$encoding),$encoding);& & & & & & }& & & & }& & }}?&
I suggest changing the function suggested by Guru Evi slightly. I found that it doesn't work as written here.Original:function add_3dots($string,$repl,$start,$limit) {&& if(strlen($string) & $limit) {& & && return substr_replace(strip_tags($string),$repl,$start,$limit);&& } else {& & && return $&& };};I suggest:function add_3dots($string,$repl,$limit) {& & && if(strlen($string) & $limit) {& & & & && return substr_replace(strip_tags($string),$repl,$limit-strlen($repl));& & && } else {& & & & && return $& & && }& & }Usage:$max_length=10;//the max number of characters you want to display$too_long_string="BLAH BLAH BLAH BLAH BLAH etc.";//the string you want to shorten (if it's longer than the $limit)$shorter_string=add_3_dots($too_long_string,"...",$max_length);
THE DOT DOT DOT ISSUEPROBLEM:You want to abbreviate a string.E.g. You want "BritneySpears" to show as "BritneySpe...", being only the ten first characters followed by "..."SOLUTION:&?$oRIGINAL = "BritneySpears";$sHORTER = substr_replace($oRIGINAL, '...', 10);echo ($sHORTER);?&This will result in BritneySpe...
To abbreviate links into '...' if they outreach a cer use the preg_replace function instead.For instance you grabbed the headlines of a news site for use on your own page and the lines are to long:asuming the raw material is stored in $$edited = preg_replace("/(&)([[:print:]]{52,})(&)/e", "'\\1'.substr_replace('\\2 ', '...', '48').'\\3'", $unedited);echo $This will shorten strings longer than 52 characters into 51 characters, with the last being three dots...
Please note that the function array_slice(), which has a similar functionality but for arrays rather than for strings, has its parameters in a different order.
The preemptive test to see if $string is "too long" shouldn't add strlen($replacement) to $max.& $max should represent the absolute maximum length of string returned.& The size of the $replacement is irrelevant in that determination.The rest of the function (unchanged below) operates as defined above.& Meaning, the size of the $replacement is subtracted from the $max, so that the returned string is exactly the length of $max.&?phpfunction truncate($string, $max = 20, $replacement = ''){& & if (strlen($string) &= $max)& & {& & & & return $string;& & }& & $leave = $max - strlen ($replacement);& & return substr_replace($string, $replacement, $leave);}?&
the version of my predecessor will add $rep even if the string is shorter than max. fixed version:
&?php
function truncate($string, $max = 20, $rep = '')
{
& & if (strlen($string) &= ($max + strlen($rep)))
& & {
& & & & return $string;
& & }
& & $leave = $max - strlen ($rep);
& & return substr_replace($string, $rep, $leave);
}
?&
To preserve the filename extension you can call it like this:
truncate([filename], 30, '...' . end(explode('.', [filename])))
I wrote a function that you can use for example in combination with a search script to cut off the articles that are too long.&?phpfunction substr_index($text, $maxChars = 20, $splitter= '...') {$theReturn = $text;$lastSpace = false;if (strlen($text) & $maxChars) {$theReturn = substr($text, 0, $maxChars - 1);if (in_array(substr($text, $maxChars - 1, 1),array(' ', '.', '!', '?'))) {$theReturn .= substr($text, $maxChars, 1);} else {$theReturn = substr($theReturn, 0, $maxChars -strlen($splitter));$lastSpace = strrpos($theReturn, ' ');if ($lastSpace !== false) {$theReturn = substr($theReturn, 0, $lastSpace);}if (in_array(substr($theReturn, -1, 1), array(','))) {$theReturn = substr($theReturn, 0, -1);}$theReturn .= $splitter;}}return $theReturn;}?&
Just to add to the examples, if replacement is longer than length, only the length number of chars are removed from string and all of replacement is put in its place, and therefor strlen($string) is inreased.
$var = 'ABCDEFGH:/MNRPQR/';
/*& Should return ABCDEFGH:/testingRPQR/&& */
echo substr_replace ($var, 'testing', 10, 2);
Regarding "...", even the short functions are too long and complicated, and there's no need to use substr_replace. substr() works better and is& way faster prior to 4.3.5 as the below poster stated.function shorten( $str, $num = 100 ) {& if( strlen( $str ) & $num ) $str = substr( $str, 0, $num ) . "...";& return $}
This is my version of making dotted strings:&?phpfunction dot($str, $len, $dots = "...") {& & if (strlen($str) & $len) {& & & & $dotlen = strlen($dots);& & & & substr_replace($str, $dots, $len - $dotlen);& & }}?&
Hey everyone, I was noticing that there are a lot of ways below that people are using to write their own string truncation functions, but it kinda seemed like a lot of them went a bit too far out to make any sense to a n00b. Not that I am one anymore, but I though I'd add a note on this topic myself, in hopes that it might help others understand things a little better.Here's a concept that some people don't know about, or remember You can actually pull individual characters out of a string by referencing that string as though it were an array. Example: If I have the string $s = 'cat', I can use $s[0] to actually get out only the first character of that string, 'c'. I use that same principle below, but I just use a loop to iterate through a string and add the characters to the output variable one by one until the $lenth param has been reached, or until the end of the string.I hope this can help someone out!-Admiral Potato&?phpfunction admiralsTruncate($string, $length){& & settype($string, 'string');& & settype($length, 'integer');& & for($a = 0; $a & $length AND $a & strlen($string); $a++){& & & & $output .= $string[$a];& & }& & return($output);}$my_string = 'cfcdef66e7dff9f98764da';echo admiralsTruncate($my_string, 6);& & echo '&br&';echo admiralsTruncate($my_string, 9);& & ?&
Here is a simple function to shorten a string and add an ellipsis&?phpfunction truncate ($string, $max = 50, $rep = '') {& & $leave = $max - strlen ($rep);& & return substr_replace($string, $rep, $leave);} echo truncate ('akfhslakdhglksjdgh', 10, '...');?&
I like the truncate function below...however, I found a few issues. Particularly if you have content that may have any kind of punctuation in it (?, !, ?!?, --, ..., .., ;, etc.)The older function would end up looking like "blah blah?..." or "blah blah,..." which doesn't look so nice to me...Here's my fix. It removes all trailing punctuation (that you include in the $punctuation string below) and then adds an ellipse. So even if it has an ellipse with 3 dots, 2 dots, 4 dots, it'll be removed, then re-added.&?phpfunction truncate($text,$numb,$etc = "...") {$text = html_entity_decode($text, ENT_QUOTES);if (strlen($text) & $numb) {$text = substr($text, 0, $numb);$text = substr($text,0,strrpos($text," "));$punctuation = ".!?:;,-"; $text = (strspn(strrev($text),& $punctuation)!=0)& & & & ?& & & & substr($text, 0, -strspn(strrev($text),& $punctuation))& & & & :$text;$text = $text.$etc;}$text = htmlentities($text, ENT_QUOTES);return $text;}?&I also needed a sort of "middle" truncate. The above function truncates around the end, but if you want to truncate around the middle (ie "Hello this is a long string." --& "Hello this ... long string.") you can use this (requires the truncate function):&?phpfunction mtruncate($text, $numb, $etc = " ... ") {& & $first_part = truncate(truncate($text, strlen($text)/2, ""), $numb/2, "");& & $second_part = truncate(strrev(truncate(strrev($text), strlen($text)/2, "")), $numb/2, "");& & return $first_part.$etc.$second_part;}?&
The comment by geniusdex is a good one.& Short, simple functions are the best.& But if the string is not longer than the limit set, NOTHING is returned.& Here is the function re-done to always return a string:&?phpfunction dot($str, $len, $dots = "...") {& & if (strlen($str) & $len) {& & & & $dotlen = strlen($dots);& & & & $str = substr_replace($str, $dots, $len - $dotlen);& & }& & return $str;}?&
&?php$price = "12000";$price = substr_replace ($price, ',', -3, 0)";?& ensure to remove the double quot& " at the end of substr_replace ($price, ',', -3, 0)" in the above& code to avoid error.
PHP version of Java's removeCharAt() function:&?phpfunction removeCharAt($str, $int){& return substr_replace($str,"",$int,1);}?&
I recently needed a routine that would remove the characters in one string from another, like the regex&?php&& $result = preg_replace("/[$chars]/", "", $string);?&and I needed it to be fast, and accept pretty much all input.& The regex above won't work when strlen($chars) == 0.& I came up with this, admittedly pretty horrible-looking code, that is quite fast:&?phpfunction RemoveChars($string, $chars){& & return isset($chars{0}) ? str_replace($chars{0}, "", strtr($string, $chars, str_pad($chars{0}, strlen($chars), $chars{0}))) : $string;}?&According to my own measurements, the regex in ONLY faster for when strlen($chars) == 1; for longer strings, my routine is faster.& What does it do?& Let's say you want to remove the period, the comma and the exclamation mark from a string, like so:$result = RemoveChars("Isn't this, like, totally neat..!?", ".?!");The str_pad function creates a string equal in length to the string that contains the character to be removed, but consisting only of the first character of that string:The input is ".,!"The output is "..."The strtr function translates all characters in the string-to-be-processed ("Isn't this...") that also occur in the input (".,!") to the characters in the same position in the output ("...").& In other words:Isn't this, like, totally neat..!?becomesIsn't this. like. totally neat....Finally, the first character from the input (".,!") which happens to be, again, the period, is removed from that string by the str_replace call:Isn't this like totally neat?The function needs to check is $chars has at least one character, or else the str_pad function will fail.& If it's empty, then the unprocessed string is returned.
If your string is not long enough to meet what you specify in start and length then the replacement string is added towards the end of the string.I wanted to replace the end of the string with ... if the string was too long to display (for instance article preview on a website). The problem was that my string was sometimes not that long and it still added the replacement string. So I wrote a function to replace substr_replace in my website:function add_3dots($string,$repl,$start,$limit) {& & if(strlen($string) & $limit) {& & & & return substr_replace(strip_tags($string),$repl,$start,$limit);& & } else {& & & & return $& & };};I use strip_tags to strip out the HTML otherwise you might get a screwed up HTML (when a tags open in the string, but because you cut-off it doesn't)
If you would like to remove characters from the start or end of a string, try the substr() function.
For example, to remove the last three characters from a string:
$string = "To be or not to be.";
$string = substr ($string, 0, -3);
Using substr_replace() can be avoided by using substr() instead:&?$string = substr($string, 0, $position_needle).$replace.substr($string, $position_needle+$length_needle);?&This can be useful when you need to replace parts of multibyte strings like strings encoded with utf-8. There isn't a multibute variant for substr_replace(), but for php substr() there is mb_substr(). For more information on multibyte strings see

我要回帖

更多关于 计算机型号怎么看 的文章

 

随机推荐