TIL/PHP

[PHP] πŸ“˜λ¬Έμžμ—΄&μ •κ·œμ‹

hanna🐀 2022. 1. 30. 12:09
728x90

# λ¬Έμžμ—΄ 처리

λ¬Έμžμ—΄(string)

  • ''(λ‹¨λ”°μ˜΄ν‘œ), ""(μŒλ”°μ˜΄ν‘œ)λ₯Ό μ‚¬μš©ν•΄μ„œ ν‘œκΈ°ν•œλ‹€.
    echo 'hello', echo "hello"
  • ''(λ‹¨λ”°μ˜΄ν‘œ)λ‚˜ ""(μŒλ”°μ˜΄ν‘œ)λ₯Ό ν‘œκΈ°ν•  λ•ŒλŠ” \(μ—­μŠ¬λž˜μ‰¬)λ₯Ό μ‚¬μš©ν•œλ‹€.
    echo 'hello\'world\'', echo "hello\"world\""
  • μ€„λ°”κΏˆ ν•  λ•ŒλŠ” μŒλ”°μ˜΄ν‘œ μ•ˆμ—μ„œ \n. \r을 μ‚¬μš©ν•œλ‹€.
    echo "hello \n"
  • λ¬Έμžμ—΄ μ•ˆμ—μ„œ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ μŒλ”°μ˜΄ν‘œ μ•ˆμ—μ„œ {, }(μ€‘κ΄„ν˜Έ)λ₯Ό μ‚¬μš©ν•œλ‹€.
    <?
    $a = array('hello', 'world');
    echo "\'λ³‘μ•„λ¦¬κ°œλ°œμž\'λΈ”λ‘œκ·Έμ˜ κ³΅μ‹μΈμ‚¬λŠ” {$a[0]} {$a[1]}μž…λ‹ˆλ‹€.";
    echo '\"λ³‘μ•„λ¦¬κ°œλ°œμž\"λΈ”λ‘œκ·Έμ˜ κ³΅μ‹μΈμ‚¬λŠ” '.$a[0].' '.$a[1].'μž…λ‹ˆλ‹€.';
    ?>
     
  • λ¬Έμžμ™€ 문자λ₯Ό 더할 λ•ŒλŠ” '.'(λ§ˆμΉ¨ν‘œ)λ₯Ό μ‚¬μš©ν•œλ‹€.
    echo 'hello'.'world'

λ¬Έμžμ™€ κ΄€λ ¨λœ μ£Όμš” ν•¨μˆ˜

# μ •κ·œν‘œν˜„μ‹

  • λ¬Έμžμ—΄μ„ μ²˜λ¦¬ν•˜λŠ” λ°©λ²•μ€‘μ˜ ν•˜λ‚˜μ΄λ‹€.
  • νŠΉμ •ν•œ 쑰건의 문자λ₯Ό '검색', 'μΉ˜ν™˜'ν•˜λŠ” 과정을 맀우 κ°„νŽΈν•˜κ²Œ μ²˜λ¦¬ν•  수 μžˆλ„λ‘ ν•˜λŠ” μˆ˜λ‹¨μ΄λ‹€.
  • κ΅¬λΆ„μžλ‘œ μ‹œμž‘ν•΄μ„œ κ΅¬λΆ„μžλ‘œ 끝을 λ‚΄μ•Όν•œλ‹€.
    κ΅¬λΆ„μž: /, #, μ•ŒνŒŒλ²³, \, 곡백이 μ•„λ‹Œ 문자
  • λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•ŠλŠ” i, μ€„λ°”κΏˆ λ¬Έμžμ— λ”°λΌμ„œ ν…μŠ€νŠΈμ˜ 행을 κ΅¬λΆ„ν•˜λ„λ‘ ν•˜λŠ” m
    ex) /foo bar/im

\b

  • λ‹¨μ–΄μ˜ 경계λ₯Ό 의미
    <?
    if(preg_match("/\bweb\b/i", "PHP is the web scripting language of chlice.")) {
       echo "A match was found.";
    } else {
       echo "A match was not found.";
    }
    /*
    	μ‹€ν–‰κ²°κ³Ό
    	- web이 λ‹¨λ…μœΌλ‘œ μ“°μ˜€κΈ° λ•Œλ¬Έμ— 쑰건 μΆ©μ‘±
    	A match was found.
    */
    
    if(preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
      echo "A match was found.";
    } else {
      echo "A match was not found.";
    }
    /*
    	μ‹€ν–‰κ²°κ³Ό
    	- web이 λ‹¨λ…μœΌλ‘œ 쓰이지 μ•Šμ•˜κΈ° λ•Œλ¬Έμ— 쑰건 뢈좩쑱
    	A match was not found.
    */
    ?>

\w

  • 문자λ₯Ό 의미
    <?
    $subject = 'coding every body http:// opentutorials.org egoing@egoing.com 010-0000-0000';
    /*
    	$matchλ³€μˆ˜λŠ” μœ„μ— λ”°λ‘œ μ„ μ–Έν•˜μ§€ μ•Šμ•„λ„λ¨
    	$matchλ³€μˆ˜μ— κ²€μƒ‰ν•œ κ²°κ³Όκ°€ μ €μž₯됨
    	
    	'/'λ₯Ό κ²€μƒ‰ν•˜κ³ μ‹Άλ‹€λ©΄ '\/'둜 ν•˜κ±°λ‚˜ κ΅¬λΆ„μžλ₯Ό λ‹€λ₯Έκ±°λ‘œ λ°”κΎΌλ‹€.
    	+: λ¬Έμžκ°€ 1개 이상을 검색
    	.: μ–΄λ– ν•œ 문자건 상관없이 .이 μœ„μΉ˜ν•œ 곳에 λ“±μž₯ (any character)
    	\s: 곡백을 μ˜λ―Έν•¨
    */
    preg_match('~(http://\w+\.\w+)\s(\w+@\w+\.\w+)~', $subject, $match);
    var_dump($match);
    /*
    	var_dump($match)의 μ‹€ν–‰κ²°κ³Ό
        array(3) {
        	[0]=>
        	string(42) "http://oentutorials.org egoing@egoing.com"
        	[1]=>
        	string(24) "http://opentutorials.org"
        	[2]=>
        	string(17) "egoing@egoing.com"
        }
    */
    echo "homepage:".$match[1];
    echo"<br/>";
    echo "email:".$match[2];
    ?>

예제

  • URLμ—μ„œ λ„λ©”μΈμ˜ 이름 μΆ”μΆœν•˜κΈ°(php.net을 좜λ ₯)
    <?
    preg_match('@^(?:http://)?([^/]+)@i', "http://www.php.nex/index.html", $matches);
    $host = $matches[1];  
    // κ²°κ³Όκ°’: www.php.net
    ?>
    • μ •κ·œμ‹ ν•΄μ„€
      @: κ΅¬λΆ„μž
      ^: λ¬Έμžμ—΄μ˜ μ²˜μŒμ— ν•΄λ‹Ήν•˜λŠ” 경계, http둜 μ‹œμž‘ν•˜λŠ” 단어 μΆ”μΆœ
      ?:: ()μ•ˆμ— μžˆλŠ” λ‚΄μš©μ„ $matchs λ³€μˆ˜μ— λ“€μ–΄κ°€μ§€ μ•ŠλŠ”λ‹€.
      • http://λŠ” $matchs λ³€μˆ˜μ— λ“€μ–΄κ°€μ§€ μ•ŠλŠ”λ‹€.
      ?: μˆ˜μ–‘μžλ₯Ό 의미, 0개~1개, http://κ°€ 0κ°œκ±°λ‚˜ 1κ°œκ±°λ‚˜
      [^/]: /κ°€ μ•„λ‹Œ λ¬Έμžλ“€(전체)
      [](λŒ€κ΄„ν˜Έ)μ•ˆμ— ^: 뢀정을 μ˜λ―Έν•¨

 

 

 

 

 

 

 

 

 

 

 

 

좜처: https://opentutorials.org/index.php/course/62

 

PHP κΈ°λ³Έ μˆ˜μ—… - μƒν™œμ½”λ”©

κ°œμš” PHPλŠ” μ„œλ²„ μΈ‘μ—μ„œ μ‹€ν–‰λ˜λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ HTML을 ν”„λ‘œκ·Έλž˜λ°μ μœΌλ‘œ 생성해주고, λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έμž‘μš© ν•˜λ©΄μ„œ 데이터λ₯Ό μ €μž₯ν•˜κ³ , ν‘œν˜„ν•©λ‹ˆλ‹€. PHPλŠ” 웹을 μœ„ν•΄μ„œ λ§Œλ“€μ–΄μ‘Œκ³ , μ§€κΈˆ

opentutorials.org

 

728x90