Szybkie posty

Jeżeli coś jest wartego uwagi a nie jest to materiał na pełnoprawnwgo posta na blogu to będę starać się to umieszczać w tym miejscu.

#ajax #apache #behat #bitbacket #bootstrap #composer #cookies #cqrs #css #css flex #ct8 #curl #docker #doctrine #edukacja #enet #enp sla #filmy #firma #funkcje php #git #google #htaccess #html #inne #javascript #jedzenie #jquery #js/jquery #kawały #krypto #laravel #linux #oop #pdo #php #php wzorce narzędzia #phpmyadmin #phpspec #phpstan #phpstorm #phpunit #podcast #rabbit #redis #seo #soap #sql #symfony #szukanie po stringach w php #twig #virtual host #visual studio code #vue #wamp #windows #wino-nalewki #wyrazenia regularne #wzorce projektowe #xml #xxx #zdjecia #złote myśli
  • Szukasz po tagu: wyrazenia regularne
  • Ilość rekordów w bazie: 17

preg replace lub

$posCode = preg_replace('/^(CCC|Halfprice)\s/', '', trim($result[0]));

regex z cudzysłowiami

link^(?:[a-ząćęłńóśźż0-9,\/."()+_;\-\s''\\]|&quot)+$

 


regex test

#(<span class="pin_code_to_mask">.).*?(.</span>)#

Regex z forum

<?php
 
$regex = '/\d(\.\d{1,2})+/';
 
$inputs = [
    '1.1',
    '1.11',
    '1.11.1'
];
 
foreach( $inputs as $input ) {
    $matches = [];
    preg_match( $regex, $input, $matches );
    var_dump( $matches );
}

Zamiana klucza w json

/**
     * replace user agent in text to user agent from actual environment
     * 
     * @param string $text
     * 
     * @return string
     */
    private function replaceUserAgent(string $text): string {
        $client = new Client();
        $userAgent = str_replace('/', '\/', ($client->getConfig('headers')['User-Agent']));

        $result = preg_replace('/"user_agent":"(Guzzle[A-Za-z0-9 . \/\\\]*)"/', '"user_agent":"' . $userAgent . '"', $text);

//or $result = preg_replace('/"user_agent":"GuzzleHttp(.*)"/', '"user_agent":"' . $userAgent . '"', $text);

//. kropka - dowolny znak * oznacza dowolną ilosc razy bez gwiazdki brało by pod uwagę tylko pierwszy znak.  

        return $result;
    }

zamiana na kropki wszystkich / z pominięciem pierwszego

<?php

$str     = '6/3/2';
$res_str = array_chunk(explode("/",$str),2);
foreach( $res_str as &$val){
   $val  = implode("/",$val);
}
echo implode(".",$res_str);

//6/3.2

Usunięcie wszystkich znaków oprócz liter, liczb i spacji

return preg_replace('/[^\d a-zA-ZĄąĘęÓóĆ棳ŃńŚśŹźŻż]/', '', $value);

\d - to dowoalna liczba naturalna 


Parser pobierający dane między dwoma nazwisami

<?php

class InputsParser {

    /**
     * @param string $content
     * @return array
     */
    public static function initParser($content) {
        $inputsArray = [];
        //get all between [] to array     
        preg_match_all('@\[\s*input .*?\]@', $content, $inputsArray);
        return $inputsArray;
    }

}

Tylko litery i spacje

if (!preg_match("@^[a-zA-ZĄąĘęÓóĆ棳ŃńŚśŹźŻż\s]+$@", $value)) {
   $this->errorMessage = 'Name must only contain letters!';
}

Wzór wystapnia na końcu stringa

// create a string
$string = 'abcdefghijklmnopqrstuvwxyz0123456789.pl';

// try to match our pattern at the end of the string
if(preg_match("/.pl\z/i", $string))
        {
    // if our pattern matches we echo this 
        echo 'The string ends with .pl';
        }
else
        {
    // if no match is found we echo this line
        echo 'No match found';
        }

https://www.phpro.org/tutorials/Introduction-to-PHP-Regex.html


Operatory w wyrażeniach regularnych

\s\S = ???? dowolny znak 26.07.2019

. - kropka symbolizuje dowolny znak (za wyjątkiem przełamania linii).

\d - dowolna cyfra dziesiętna

\D - dowolny znak niebędący cyfrą

\s - biały znak (np. spacja, tabulator)

^ - Początek linii

$ - Koniec linii

\b (PCRE) - Znak wyrazu pomiędzy znakiem wyrazu a pomiędzy znakiem niewyrazu, czyli pomiędzy \w\W lub \W\w

\B (PCRE) -Wszystko to, czego nie dopasowuje \b

* - dowolną ilośc razy


Wyrażenie regularne czy pole zawiera 0 lub 1 i ma długość 4

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <form action="ostatniprzyklad.php" method="post">
            <input type="text" name="pole">
            <input type="submit" value="wyslij">
        </form>
        <?php
        if (preg_match('@^[01]{4}$@', $_POST['pole'])) {
          echo ('ok');
        } else {
          echo ('error');
        }
        ?>
    </body>
</html>

Wyrażenie regularne negacja zawartości

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <form action="ostatninegacje.php" method="post">
            <input type="text" name="pole">
            <input type="submit" value="wyslij">
        </form>
        <?php
        if (preg_match('@^[^a-z]+$@', $_POST['pole'])) {//+oznacza minimum jeden raz(min jedne znak)
          echo ('ok');
        } else {
          echo ('error');
        }
        ?>
    </body>
</html>

Walidacja imienia i nazwiska z dużej litery i od 2 do 10 znaków wyrażenia regularne

<!DOCTYPE html>
<html>
    <head>
        <title>Walidacja imienia i nazwiska z dużej litery i od 2 do 10 znaków </title>
    </head>
    <body>
        <form action="imieinazwisko.php" method="post">
            <input type="text" name="pole">
            <input type="submit" value="wyslij">
        </form>
        <?php
        if (preg_match('@^[A-Z][a-z]{2,10} [A-Z][a-z]{2,10}$@', $_POST['pole'])) {
          echo 'ok';
        } else {
          echo 'error';
        }
        ?>
    </body>
</html>

Wyrażenia regularne czy pole zawiera liczbę

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
    <body>
        <form action="jedenhaslocyfra.php" method="post">
            <input type="text" name="pole">
            <input type="submit" value="wyslij">
        </form>
        <?php
        if (preg_match('@[0-9]@', $_POST['pole'])) {
          echo ('ok');
        } else {

          echo ('error');
        }
        ?>
    </body>
</html>

Wyrażenia regularne walidacja kodu pocztowego

<!DOCTYPE html>
<html>
    <head>
        <title>Wyrażenia regularne walidacja kodu pocztowego</title>
    </head>
    <body>
        <form action="dwa pesel elegancko.php" method="post">
            <input type="text" name="pole">
            <input type="submit" value="wyslij">
        </form>
        <?php
        if (preg_match('@^[0-9]{2}-[0-9]{3}$@', $_POST['pole'])) {
          echo ('ok');
        } else {
          echo ('error');
        }
        ?>
    </body>
</html>

Wyrażenia regularne walidacja kodu pocztowego ale mało elegancko

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Walidacja pesla ale mało elegancko :]</title>
    </head>
    <body>
        <?php
        if (preg_match('@^[0-9][0-9]-[0-9][0-9][0-9]$@', $_POST['pole'])) {
          echo 'ok';
        } else {
          echo 'error';
        }
        ?>
        <form action="pierwsze pesel ale chamsko.php" method="post">
            <input type="text" name="pole">
            <input type="submit">
        </form>
    </body>
</html>