Para funciones de manejo y manipulación de strings más poderosas, revise las funciones de expresiones regulares compatibles con Perl. Para trabajar con la codificación de caracteres multibyte, revise las funciones de string multibyte.
I'm converting 30 year old code and needed a string TAB function:
//tab function similar to TAB used in old BASIC languages
//though some of them did not truncate if the string were
//longer than the requested position
function tab($instring="",$topos=0){
if(strlen($instring)<$topos){
$result=str_pad($instring,$topos-1," ",STR_PAD_RIGHT);
}else{
$result=substr($instring,0,$topos-1);
}
return $result;
}
$pline="String with this tab to 50 and";
$tline=tab($pline,50)."finish it.";
echo $tline.PHP_EOL;
$pline="101010101020202020203030303030404040404050505050506060606060";
$tline=tab($pline,50)."finish it.";
echo $tline.PHP_EOL;
//Results in this output:
//String with this tab to 50 and finish it.
//1010101010202020202030303030304040404040505050505finish it.I really searched for a function that would do this as I've seen it in other languages but I couldn't find it here. This is particularily useful when combined with substr() to take the first part of a string up to a certain point.
strnpos() - Find the nth position of needle in haystack.
<?php
function strnpos($haystack, $needle, $occurance, $pos = 0) {
for ($i = 1; $i <= $occurance; $i++) {
$pos = strpos($haystack, $needle, $pos) + 1;
}
return $pos - 1;
}
?>
Example: Give me everything up to the fourth occurance of '/'.
<?php
$haystack = "/home/username/www/index.php";
$needle = "/";
$root_dir = substr($haystack, 0, strnpos($haystack, $needle, 4));
echo $root_dir;
?>
Returns: /home/username/www
Use this example with the server variable $_SERVER['SCRIPT_NAME'] as the haystack and you can self-discover a document's root directory for the purposes of locating global files automatically!