(Ова е гостински текст на Мартин Рајовски, модератор на форумот на IT.com.mk)
{mosimage}Би сакал да споделам со вас неколку функции кои според мене се навистина добри и корисни. Сите оние кои се занимаваат со веб-програмирање, овие функции им се повеќе од познати, но за оние кои се почетници одлично ќе им се најдат. Можеби нема сите да се сложите со мене и со моите неколку пример…ама затоа сум отворен за дискусии на темата. Пишете ми во коментарите подолу.
1. Function insert
Оваа фунција се користи за вметнување на string во рамките на друг string. Првиот аргумент е основата. Втората ставка се вметнува во основата и се проследува со повикување. Вториот аргумент е string кој се вметнува во база. Третиот аргумент е број кој кажува од кој карактер започнува вметнувањето. Ако бројот е поголем од вкупната големина на базата,ќе се додаде string-от. Ако бројот е помал од 0, string-от се вметнува во почетокот од базата.
Функцијата би изгледала вака:
function insert ( &$base, $string, $begin ) {
$base = ( string ) $base;
$string = ( string ) $string;
$begin = ( int ) $begin;
if ( strlen($base) < $begin ) {
$base .= $string;
}
elseif ( $begin < 0 ) {
$base = $begin . $base;
}
else {
$base = substr ( $base, 0, $begin ) . $string . substr ( $base, $begin );
}
}
А еве и пример:
$baza = ‘denes e den.’; //String as base
$string = ‘ubav i soncev ‘; //String that we insert
insert ( $baza, $string, 9 ); //Function call (we want insert $string after 9. character in $baza)
echo $baza; //Result is "Denes e ubav i soncev den."
2. Function highlight
Функцијата се користи да се потенцира вториот string во првиот string. Првиот аргумент е основата,која се испраќа како референца. Вториот аргумент е string кој е истакнат во базата. Третиот аргумент е string кој на почетокот на string-от сме го барале,или на крајот од string-от. Четвртиот аргумент утврдува дали ние ги користиме вистинските изрази или не. Петтиот аргумент утврдува дали ние користиме чутвителни пребарувања (нема влиание ако користите регуларни изрази).
Изглед на функцијата:
function highlight ( &$base, $string, $wrapStart, $wrapEnd, $regex = false, $case = true ) {
$base = ( string ) $base;
$string = ( string ) $string;
$wrapStart = ( string ) $wrapStart;
$wrapEnd = ( string ) $wrapEnd;
$regex = ( bool ) $regex;
$case = ( bool ) $case;
if ( $regex ) {
preg_replace ( $string, $wrapStart . "$1" . $wrapEnd, $base );
}
else {
$func = $case ? ‘strpos’ : ‘stripos’;
$pos = 0;
$wrapStartLen = strlen ( $wrapStart );
$wrapEndLen = strlen ( $wrapStart );
$stringLen = strlen ( $string );
while ( ( $pos = call_user_func ( $func, $base, $string, $pos ) ) !== false ) {
$base = substr ( $base, 0, $pos ) . $wrapStart . substr ( $base, $pos, strlen ( $string ) ) . $wrapEnd . substr ( $base, $stringLen + $pos );
$pos += $wrapStartLen + $wrapEndLen + 1;
}
}
}
Пример:
$baza = ‘denes e ubav i soncev den.’; //String in which we highlight
$sting = ‘den’; //String that we highlight
$wrapStart = ‘<strong>’; //Start tag
$wrapEnd = ‘</strong>’; //End tag
highlight ( $baza, $sting, $wrapStart, $wrapEnd, false, false ); //We call function (we do not want regular expression and we want it to be case insensitive)
echo $baza; //Result is "<strong>Dan</strong>es e ubav i soncev
<strong>den</strong>."
3. Function makeFlat
Функцијата има едноставна цел,да претвара од мултидимензионалан низа, во едно-димензионална низа. Таа е рекурзивна функција и добива само еден аргумент. Аргументот е низа во која сакаме да израмнуваме. Излезната вредност на функцијата е еден, едно-димензионална низа. Ова е корисно да се користи
ksort со цел да се сортира низа, која е вратена бидејќи не е сортирана.
Вака изгледа функцијата:
function makeFlat ( $array ) {
$array = ( array ) $array;
$keys = array_keys ( $array );
do {
$key = current ( $keys );
if ( is_array ( $array [$key] ) ) {
arrayMerge ( false, $array, makeFlat ( $array [$key] ) );
unset ( $array [$key] );
}
} while ( next ( $keys ) !== false );
return $array;
}
Пример:
$array = array(
0,
array(
1,
2,
array(
array(
3,
4,
5
),
6,
7,
8
),
9,
10,
array(
11,
12,
13
)
),
14,
15
); //We create multidimensional array
$niz = makeFlat ( $array ); //Function call
print_r ( $niz );
/*
Result is
"Array
(
[0] => 0
[2] => 14
[3] => 15
[4] => 1
[5] => 2
[6] => 9
[7] => 10
[8] => 6
[9] => 7
[10] => 8
[11] => 3
[12] => 4
[13] => 5
[14] => 11
[15] => 12
[16] => 13
)"
*/
4. Function arrayMerge
Ги комбинира сите низи во една. Првиот аргумент одредува како да се третираат кључевите кои имаат дупликати. Ако таа е вистинита, во функцијата ја заменува претходната вредност со нова. Ако е лажна, функцијата создава нов клуч со вредност. Вториот аргумент е низа која се користи како база и се испраќаат од референцата. Дополнително може да е додаде и многу полиња како што сакате и тие да бидат споени во првата низа. Оваа функција е потреба на правилно работење во makeFlat функцијата.
Функцијата е ваква:
function arrayMerge ( $replace = false, &$baseArray ) {
$replace = ( bool ) $replace;
$args = func_num_args ();
if ( $args < 3 ) {
return true;
}
for ( $i = 2; $i < $args; $i++ ) {
$array = ( array ) func_get_arg ( $i );
$keys = array_keys ( $array );
do {
$key = current ( $keys );
if ( isset ( $baseArray [$key] ) ) {
if ( $replace )
$baseArray [$key] = $array [$key];
else
$baseArray [] = $array [$key];
}
else {
$baseArray [$key] = $array [$key];
}
} while ( next ( $keys ) !== false );
}
return true;
}
Еден пример:
$array1 = array(
0,
1,
2,
3
);
$array2 = array(
4,
5,
6
);
$array3 = array(
7,
8,
9,
10
);//We create 3 arrays
arrayMerge ( false, $array1, $array2, $array3 ); //We call function (merge 3 arrays and create new key for duplicated keys)
print_r ( $array1 );
/*
Result is
"Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[6] => 6
[7] => 7
[8] => 8
[9] => 9
[10] => 10
)"
*/
5. Function countWholeArray>
Функцијата враќа вкупен број на редови во повеќедименциооналната низа, и таа е рекурзивна. Првиот аргумент е низа во која се рачунаат редовите. Излезната вредност е вкупниот број на редови.
Функција:
function countWholeArray ( $array ) {
$array = ( array ) $array;
$keys = array_keys ( $array );
$count = count ( $array );
do {
$key = current ( $keys );
if ( is_array ( $array [$key] ) ) {
$count += countWholeArray ( $array [$key] );
}
} while ( next ( $keys ) !== false );
return $count;
}
Пример:
$array = array(
0,
array(
1,
2,
array(
array(
3,
4,
5
),
6,
7,
8
),
9,
10,
array(
11,
12,
13
)
),
14,
15
); //Multidimensional array
$var = countWholeArray ( $array ); //Function call
echo $var; //Result is "20"
Ова се 5 функции кои сметам дека се корисни…Ако имате некоја друга да додадете ставете ја во коментар….






