웹표준화 작업을 하다보면, 자주 실수(?)하는것이 이미지 alt 속성을 빠트린 다는 것이다.

사실, 변명하고 싶은것이 bullet 같은 이미지는 어떠한 정보를 가지고 있다기 보다는 하나의 눈요기용(?) 이라고 생각하기 때문에 궂이 alt 속성을 넣어주어야 하는 생각이다.

하지만 w3c validator 님은 어김없이 alt속성이 없는 이미지에 대해서 친절한 오류메세지를 넘겨주시기 때문에, 삽입을 해주어야 겠다.(인증 마크 받아야 하기 때문에...)


그.래.서 alt 속성이 없는  이미지 태그에 일괄적으로 alt 태그를 넣어주는 php 코드를 짜보았다.

<?php

$fp = fopen("index.htm",r);

while(!feof($fp)) $images[] = fgets($fp,1024);

$fn = fopen("indexnew.htm",a);
for($i=0;$i<sizeof($images);$i++){
  
if(preg_match("@<img src=\".+?/>@",$images[$i])){
  
    if(!preg_match("@alt=\"@",$images[$i])) {
      
        $replaced = preg_replace("@/>@","alt=\"none\"/>",$images[$i]);
        fwrite($fn,$replaced);
      
      }else{
        
        fwrite($fn,$images[$i]);
        }
  
  } else{
      
      fwrite($fn,$images[$i]);
    }
  }
?>

코드가 촌스러우면 어떠리, 잘되니 사용하면 그만.
Posted by 웹눈
$str = 'ㄱㄱㄱ가나다라abcd마바사아efgh항'; 
$hangul_jamo = '\x{1100}-\x{11ff}'; 
$hangul_compatibility_jamo = '\x{3130}-\x{318f}'; 
$hangul_syllables = '\x{ac00}-\x{d7af}'; 

preg_match("/['.$hangul_jamo.$hangul_compatibility_jamo.$hangul_syllables.']+/u",$desc[0],$descs);
Posted by 웹눈
<input type="checkbox" name="value[]" value="2" />2
<input type="checkbox" name="value[]" value="3" />3
<input type="checkbox" name="value[]" value="4" />4
.
.
.
위와 같이 name 부분에 [] 배열 형태를 적어주면, php 파일에서는

$values = $_POST['value'] ; // Array 로 받을수 있다.

print_r($values);
//
// Array([0]=>2,[1]=>3,[2]=>4)

'프로그래밍 > PHP' 카테고리의 다른 글

PHP 정규식 한글만 추출  (0) 2009/06/14
checkbox form 에서 값 넘겨받기  (0) 2009/06/07
PHP로 달력만들기  (0) 2009/05/15
PHP 1부터 100 사이의 소수 구하기  (0) 2009/05/09
Posted by 웹눈
# 기본 셀렉터
*             : 모든 엘리먼트와 일치
E             : 태그명이 E인 모든 엘리먼트와 일치
E F          : E의 자손이면서 태그명이 F인 모든 엘리먼트와 일치
E>F         : E의 바로 아래 자식이면서 태그명이 F인 모든 엘러먼트와 일치
E+F         : E의 형제 엘리먼트로 바로 다음에 나오는 엘리먼트 F와 일치
E~F        : E의 형제 엘리먼트로 다음에 나오는 모든 엘리먼트 F와 일치
E:has(F) : 태그명이 F인 자손을 하나 이상 가지는 태그명이 E인 모든 엘리먼트와 일치
E.C        : 클래스명 C를 가지는 모든 엘리먼트 E와 일치, E의 생각은 *.C와 동일함
E#I         : 아이디가 I인 엘리먼트 E와 일치. E의 생략은 *#I와 동일함
E[A]       : 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치
E[A=V]   : 값이 V인 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치
E[A^=V]  : 값이 V로 시작하는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치
E[A$=V]  : 값이 V로 끝나는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치
E[A*=V] : 값에 V를 포함하는 어트리뷰트 A를 가지는 모든 엘리먼트 E와 일치

# 위치기반 셀렉터
:first            : 페이지에서 처음으로 일치하는 엘리먼트. li a:first는 리스트 아이템의 첫번째 링크를 반환함
:last            : 페이지에서 마지막으로 일치하는 엘리먼트. li a:last는 리스트 아이템의 마지막 링크를 반환함
:first-child    : 첫번째 자식 엘리먼트. li:first-child는 각 리스트의 첫번째 아이템을 반환한다.
:last-child        : 마지막 자식 엘리먼트. li:last-child는 각 리스트의 마지막 아이템을 반환한다.
:only-child        : 형제가 없는 모든 엘리먼트 반환
:nth-child(n)    : n번째 자식 엘리먼트. li:nth-child(2)는 각 리스트의 두번째 리스트 아이템을 반환함
:nth-child(event|odd) : 짝수 또는 홀수 자식 엘리먼트. li:nth-child(event)은 각 목록의 짝수 번째 자식 엘리먼트 반환
:nth-child(Xn + Y) : 전달된 공식에 따른 n번째 자식 엘리먼트. Y는 0인경우 생략가능하다. li:nth-child(3n)은 3의 배수번째 아이템을 반환, li:nth-child(5n+1) 은 5의 배수 +1번째 아이템을 반환
:event / :odd    : 페이지 전체의 짝수/홀수 번째 엘리먼트. li:even은 모든 짝수번째 아이템을 반환한다.
:eq(n)            : n번째로 일치하는 엘리먼트
:gt(n)            : n번째 엘리먼트(포함안됨) 이후의 엘리먼트와 일치
:lt(n)            : n번째 엘리먼트(포함안됨) 이전의 엘리먼트와 일치

# 필터 셀럭터
:animated        : 현재 애니메이션이 적용되고 있는 엘리먼트를 선택
:button            : 모든 버튼을 선택함(input[type=submit], input[type=reset], input[type=button], button)
:checkbox        : 체크박스 엘리먼트만 선택(input[type=checkbox])
:checked        : 선택된 체크박스나 라디오 버튼만을 선택
:contains(foo)    : 텍스트 foo를 포함하고 있는 엘리먼트만 선택
:disabled        : 인터페이스에서 비활성화 상태인 모든 폼 엘리먼트를 선택한다.
:enabled        : 인터페이스에서 활성화 상태인 모든 폼 엘리먼트를 선택한다.
:file            : 모든 파일 엘리먼트를 선택함(input[type=file])
:header            : 헤더 엘리먼트만 선택한다. 예를 들어 <h1>부터 <h6>엘리먼트만 선택한다.
:hidden            : 감춰진 엘리먼트만 선택한다.
:image            : 폼 이미지를 선택한다.(input[type=image])
:input            : 폼 엘리먼트만 선택한다.(input, select, textarea, button)
:not(filter)    : 필터의 값을 반대로 변경한다.
:parent            : 빈 엘리먼트를 제외하고, 텍스트도 포함해서 자식 엘리먼트를 가지는 엘리먼트를 선택한다.
:password        : 패스워드 엘리먼트만 선택한다. (input[type=password])
:radio            : 라디오 버튼 엘리먼트만 선택한다.(input[type=radio])
:reset            : 리셋 버튼을 선택(input[type=reset], button[type=reset])
:selected        : 선택된 엘리먼트만 선택한다.
:submit            : 전송 버튼을 선택한다.(button[type=submit], input[type=button])
:text            : 텍스트 엘리먼트만 선택(input[type=text])
:visible        : 보이는 (visible)엘리먼트만 선택한다.
Posted by 웹눈