혼자

2014-09-10 2 views
1

내가 쿼리가 서 단어를 교체합니다.혼자

내가이 스크립트를 사용하는 경우 :

$toupper = str_replace(array("select","from","where","order by", "group by", "as"), 
        array("SELECT","FROM","WHERE","ORDER BY", "GROUP BY","AS"),$query); 

를 또한 "로"가 다른 문자열을 변경합니다.

SELECT lASt_name AS lAStname FROM table 

이 어떻게에 "있는 그대로" "로"독립형 키워드를 대체 할 수 는 그래서이된다?

$toupper = preg_replace("/\bas\b/", "AS", $query); 

전에 단어가 아닌 모든 단어 문자와 일치하기 때문에 동일한 위치에서 공간을 사용하는 것보다 더 효과적입니다 후 단어 경계를 사용 :

+3

그냥 ""을 ""AS " '로 바꾸십시오. –

+0

@GordonLinoff "as"뒤에 줄 바꿈이 없으면 작동하지 않습니다. : – Sugar

+1

Counter 질문 : 왜 그것을하고 싶습니까? –

답변

0

현재 가지고있는 코드와 거의 똑같은 코드를 사용할 수 있습니다. AS 문은 항상 그 전후에 공백이 있기 때문에

, 너무처럼, 이전과 asAS 후 공간이 약간 str_replace을 수정

$toupper = str_replace(array("select","from","where","order by", "group by", " as ",),array("SELECT","FROM","WHERE","ORDER BY", "GROUP BY"," AS "),$query); 

결과는 다음과 같습니다

SELECT last_name AS lastname FROM table

이렇게하면 코드를 거의 동일하게 유지할 수 있습니다.

+1

wauw, 나는 이것에 대해 생각하지 않았다 ... 지금 바보 같다고 느껴. 그것을 알아 줘서 고마워. – Elasek

3

당신은 정규 표현식은 전체 단어 만 일치하도록해야한다 줄 바꿈, 하이픈 등등. 앵커에 대한 내용은 \bhere입니다.

관련 문제