PHP.mk документација

str_ireplace

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.str-ireplace.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека function.str-ireplace.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
str_ireplace

Референца за `function.str-ireplace.php` со подобрена типографија и навигација.

function.str-ireplace.php

str_ireplace

класата mysqli_driver

str_ireplaceВерзија што не прави разлика помеѓу големи и мали букви од str_replace()

= NULL

str_ireplace(
         array|string $search,
         array|string $replace,
         string|array $subject,
         int &$count = null
): string|array

Оваа функција враќа стринг или низа со сите појави на search in subject (игнорирајќи ги големите и малите букви) заменети со даденото replace value.

За да замените текст врз основа на шема наместо фиксен стринг, користете preg_replace() со i модификатор на шема.

Параметри

Враќа search and replace се низи, тогаш str_ireplace() зема вредност од секоја низа и ги користи за пребарување и замена на subject. Ако replace има помалку вредности од search, тогаш празен стринг се користи за останатите вредности за замена. Ако search е низа и replace е стринг, тогаш овој стринг за замена се користи за секоја вредност од search. Обратното, сепак, не би имало смисла.

Враќа search or replace се низи, нивните елементи се обработуваат од првиот до последниот.

search

Вредноста што се бара, позната и како needle. Низа може да се користи за означување на повеќе игли.

replace

Вредноста за замена што ги заменува пронајдените search вредности. Низа може да се користи за означување на повеќе замени.

subject

Стрингот или низата што се пребарува и заменува, позната и како haystack.

Враќа subject е низа, тогаш пребарувањето и замената се вршат со секој запис од subject, а вратената вредност е исто така низа.

count

Ако се помине, ова ќе биде поставено на бројот на извршени замени.

Вратени вредности

Ако се помине, ова ќе биде поставено на бројот на извршени замени.

Дневник на промени

Верзија = NULL
8.2.0 Враќа стринг или низа од замени. setlocale()Преклопувањето на случајот повеќе не зависи од локалот поставен со ". Само ќе се изврши преклопување на случајот ASCII. Не-ASCII бајтовите ќе се споредуваат според нивната бајт вредност.

Примери

Пример #1 str_ireplace() example

<?php
$bodytag
= str_ireplace("%body%", "black", "<body text=%BODY%>");
echo
$bodytag; // <body text=black>
?>

Белешки

Забелешка: Пример #4 Користење на контексти на потоци

Безбедност: стандардниот сет на знаци

Замените се вршат од лево кон десно, може да замени претходно вметната вредност при вршење на повеќе замени. Пример #2 во

Кога корисникот ќе кликне некаде на сликата, придружната форма ќе биде предадена на серверот со две дополнителни променливи: str_ireplace() документацијата покажува како ова може да влијае на вас во пракса. str_replace() - Преведи знаци или замени поднизи

Види Исто така

  • str_replace() - Замени ги сите појави на низата за пребарување со низата за замена
  • preg_replace() - Изврши пребарување и замена на регуларни изрази
  • strtr() Антеус

Белешки од корисници 11 белешки

7 белешки
пред 1 година
Attention! str_ireplace does not destroy multibyte characters. But multibyte characters are not replaced case-insensitively. 

<?php
echo  str_ireplace('Ä', 'Ae_', 'Ägypten');  // Ae_gypten
echo  str_ireplace('ä', 'ae_', 'ägypten');  // ae_gypten
echo  str_ireplace('ä', 'ae_', 'Ägypten');  // Ägypten
echo  str_ireplace('Ä', 'ae_', 'ägypten');  // ägypten
echo  str_ireplace('E', 'e_', 'egypt');  // e_gypt
echo  str_ireplace('e', 'e_', 'Egypt');  // e_gypt
echo  str_ireplace('ä', 'ae_', mb_strtolower('Ägypten'));  // ae_gypten
sawdust
пред 17 години
Here's a different approach to search result keyword highlighting that will match all keyword sub strings in a case insensitive manner and preserve case in the returned text. This solution first grabs all matches within $haystack in a case insensitive manner, and the secondly loops through each of those matched sub strings and applies a case sensitive replace in $haystack. This way each unique (in terms of case) instance of $needle is operated on individually allowing a case sensitive replace to be done in order to preserve the original case of each unique instance of $needle.

<?php
function highlightStr($haystack, $needle, $highlightColorValue) {
     // return $haystack if there is no highlight color or strings given, nothing to do.
    if (strlen($highlightColorValue) < 1 || strlen($haystack) < 1 || strlen($needle) < 1) {
        return $haystack;
    }
    preg_match_all("/$needle+/i", $haystack, $matches);
    if (is_array($matches[0]) && count($matches[0]) >= 1) {
        foreach ($matches[0] as $match) {
            $haystack = str_replace($match, '<span style="background-color:'.$highlightColorValue.';">'.$match.'</span>', $haystack);
        }
    }
    return $haystack;
}
?>
ASchmidt at Anamera dot net
20 години пред
here's a neat little function I whipped up to do HTML color coding of SQL strings. 

<?php
/**
 * Output the HTML debugging string in color coded glory for a sql query
 * This is very nice for being able to see many SQL queries
 * @access     public
 * @return     void. prints HTML color coded string of the input $query.
 * @param     string $query The SQL query to be executed.
 * @author     Daevid Vincent [[email protected]]
 *  @version     1.0
 * @date        04/05/05
 * @todo     highlight SQL functions.
 */
function SQL_DEBUG( $query )
{
    if( $query == '' ) return 0;

    global $SQL_INT;
    if( !isset($SQL_INT) ) $SQL_INT = 0;

    //[dv] this has to come first or you will have goofy results later.
    $query = preg_replace("/['\"]([^'\"]*)['\"]/i", "'<FONT COLOR='#FF6600'>$1</FONT>'", $query, -1);

    $query = str_ireplace(
                            array (
                                    '*',
                                    'SELECT ',
                                    'UPDATE ',
                                    'DELETE ',
                                    'INSERT ',
                                    'INTO',
                                    'VALUES',
                                    'FROM',
                                    'LEFT',
                                    'JOIN',
                                    'WHERE',
                                    'LIMIT',
                                    'ORDER BY',
                                    'AND',
                                    'OR ', //[dv] note the space. otherwise you match to 'COLOR' ;-)
                                    'DESC',
                                    'ASC',
                                    'ON '
                                  ),
                            array (
                                    "<FONT COLOR='#FF6600'><B>*</B></FONT>",
                                    "<FONT COLOR='#00AA00'><B>SELECT</B> </FONT>",
                                    "<FONT COLOR='#00AA00'><B>UPDATE</B> </FONT>",
                                    "<FONT COLOR='#00AA00'><B>DELETE</B> </FONT>",
                                    "<FONT COLOR='#00AA00'><B>INSERT</B> </FONT>",
                                    "<FONT COLOR='#00AA00'><B>INTO</B></FONT>",
                                    "<FONT COLOR='#00AA00'><B>VALUES</B></FONT>",
                                    "<FONT COLOR='#00AA00'><B>FROM</B></FONT>",
                                    "<FONT COLOR='#00CC00'><B>LEFT</B></FONT>",
                                    "<FONT COLOR='#00CC00'><B>JOIN</B></FONT>",
                                    "<FONT COLOR='#00AA00'><B>WHERE</B></FONT>",
                                    "<FONT COLOR='#AA0000'><B>LIMIT</B></FONT>",
                                    "<FONT COLOR='#00AA00'><B>ORDER BY</B></FONT>",
                                    "<FONT COLOR='#0000AA'><B>AND</B></FONT>",
                                    "<FONT COLOR='#0000AA'><B>OR</B> </FONT>",
                                    "<FONT COLOR='#0000AA'><B>DESC</B></FONT>",
                                    "<FONT COLOR='#0000AA'><B>ASC</B></FONT>",
                                    "<FONT COLOR='#00DD00'><B>ON</B> </FONT>"
                                  ),
                            $query
                          );

    echo "<FONT COLOR='#0000FF'><B>SQL[".$SQL_INT."]:</B> ".$query."<FONT COLOR='#FF0000'>;</FONT></FONT><BR>\n";

    $SQL_INT++;

} //SQL_DEBUG
?>
степаник на матија на gmail точка ком
пред 11 години
If you follow the instructions given here you will end up with code which works in php5.3 but which bugs-out in php5.4. Reason is that '&$count' (explicit pass by reference) is now an illegal construct.
Nasty, especially it leads to unreliable code which may work on test but not in production. Manual needs corrected!
ишутко на gmail точка ком
пред 15 години
FIX-ed problem with highlighting second 'o' OR 'a', in this string

<?php
function highlight_string ($haystack, $needle, $highlight_class) {
         // return $haystack if there is no highlight color or strings given, nothing to do.
        
        $first_encode='XXXXXXXXXXXXXXX';     //ENCODE string

        $second_encode='YYYYYYYYYYYYYYY';
        
        preg_match_all("/$needle+/i", $haystack, $matches);
        if (is_array($matches[0]) && count($matches[0]) >= 1) {
            foreach ($matches[0] as $match) {
                $haystack = str_replace($match, $first_encode.$match.$second_encode, $haystack);
            }
        }
        
        $haystack=str_replace(array($first_encode,$second_encode),
array('<font class="'.$highlight_class.'" >','</font>'),$haystack);
        
        return $haystack;
}
?>
aidan на php точка net
21 години пред
This functionality is now implemented in the PEAR package PHP_Compat.

More information about using this function without upgrading your version of PHP can be found on the below link:

http://pear.php.net/package/PHP_Compat
Псудо - thepsudo на gmail точка ком
пред 17 години
For function work with cirilic

setlocale (LC_ALL, 'ru_RU');
Мајкл точка Бонд на mail точка wvu точка еду
пред 14 години
For highlighting without the overhead of regex and without destroying capitalization, try this:

<?php
function highlight($needle, $haystack){
    $ind = stripos($haystack, $needle);
    $len = strlen($needle);
    if($ind !== false){
        return substr($haystack, 0, $ind) . "<b>" . substr($haystack, $ind, $len) . "</b>" .
            highlight($needle, substr($haystack, $ind + $len));
    } else return $haystack;
}
?>

This example uses HTML bold tags, but you can easily change the highlighting method.
хфуекс на nospam точка org
пред 17 години
This function will highlight search terms (Key Words in Context). 

The difference between this one and the ones below is that it will preserve the original case of the search term as well. So, if you search for "american" but in the original string it is "American" it will retain the capital "A" as well as the correct case for the rest of the string. 

<?php
function kwic($str1,$str2) {
    
    $kwicLen = strlen($str1);

    $kwicArray = array();
    $pos          = 0;
    $count       = 0;

    while($pos !== FALSE) {
        $pos = stripos($str2,$str1,$pos);
        if($pos !== FALSE) {
            $kwicArray[$count]['kwic'] = substr($str2,$pos,$kwicLen);
            $kwicArray[$count++]['pos']  = $pos;
            $pos++;
        }
    }

    for($I=count($kwicArray)-1;$I>=0;$I--) {
        $kwic = '<span class="kwic">'.$kwicArray[$I]['kwic'].'</span>';
        $str2 = substr_replace($str2,$kwic,$kwicArray[$I]['pos'],$kwicLen);
    }
        
    return($str2);
}
?>
холблин на холблин точка ком
20 години пред
Note that character case is being defined by your server's locale setting, which effects strings containing non-ASCII characters.

See strtolower() - http://www.php.net/strtolower and comments - internally str_ireplace converts $search and $replace to lowercase to find matches.
(PHP 5, PHP 7, PHP 8)
пред 15 години
Warning with highlighting ...

I used :

<?php
$text = preg_replace('/('.$q.')/i','<span class=highlighting "">$1</span>' , $text);
?>

Because this line do not allow to highlight uppercase and lowercase correctly (transform uppercase to lowercase for exemple)

<?php
 $text = str_ireplace( $q , '<span class=highlighting "">'.$q.'</span>', $text);
?>

But when $q contain some regex you have some problems ... for exemple :
<?php $q = '('; ?>

So you must use preg_replace to highlight correctly the text and you must create a function for escape bad regex caracters !

I think that a better function can be found but this works I guess :

<?php
function regex_escape( $q )
{
    return preg_replace('/([\[\]\(\)\{\}\-\.\*\?\|\^\$])/', '\$1', $q);
}
?>
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.