2011-01-25 3 views
2

현재 작은 웹 응용 프로그램을 수정하고 있습니다. 이 웹 응용 프로그램을 사용하면 사용자가 범주를 직접 입력하거나 지정할 수 있습니다. 데이터베이스에서 케이크와 같은 공백과 특수 문자가 포함 된 카테고리가 많이 있음을 알아 냈습니다 (예 : 케이크 & 컵 케이크).공백 및 특수 문자가 포함 된 URL에 대한 유용한 정보

프런트 엔드에서 데이터베이스는 URL 링크의 형태로 모든 사용자 정의 범주를 표시하고 사용자가이를 클릭하여 범주의 내용을 자세히 볼 수 있습니다.

프런트 엔드 범주 링크는 rawurlencode 함수를 사용하여 인코딩되며 다음과 유사합니다.

./show.php?category=<?php echo rawurlencode($e['category']); ?> 

그리고 백 엔드에

는 기능은 URL을 GET하고이 쿼리에 대한 데이터베이스로 전송되는되기 전에 다음을 디코딩 할 것이다.

$category = rawurldecode(htmlspecialchars_decode($category)); 

잘 작동하지만 다소 '최후의 순간'과 '순박 한'것처럼 보입니다.

URL에 특수 문자와 공백을 넣는 가장 좋은 방법은 무엇입니까?

미리 감사드립니다.

답변

2

"슬러그"방법을 사용하는 것을 선호합니다. 당신은 문자열을 "slugify"수 있고 URL에 슬러그를 사용합니다.

http://sourcecookbook.com/en/recipes/8/function-to-slugify-strings-in-php

당신은 슬러그에 대한 데이터베이스에 열을 추가해야합니다,하지만 당신은 쉽게 URL에 사용자 입력 필드를 표현하고 읽을 수 있습니다. "function-to-slugify-strings-in-php"는 원래 "PHP에서 문자열을 슬러그시키는 함수"와 같은 것으로 보였던 슬러그입니다.

+0

안녕하세요 xyld, 귀하의 의견에 감사드립니다. 내가 틀렸다고 정정하면 데이터베이스에 슬러그 문자열을위한 새로운 열을 추가하고 URL 값으로 사용하며 기존 범주 열의 값을 링크 텍스트로 사용합니다. 좋은 해결책 및 검색 엔진 친절한 너무 소리가 난다. 그러나, 나는 여전히 URL 재 작성을 show.php와 같이 사용하는 것이 가장 좋을 것이라고 생각합니다. category = 케이크와 컵 케이크는 여전히 다소 정교하지 않습니다. 그러나 훌륭한 제안에 감사 드리며 대단히 감사드립니다. :) –

+0

더 나은 솔루션을 찾으셨습니까? – dlamotte

관련 문제