최근에 웹 사이트를 Drupal로 마이그레이션했습니다. 이전 페이지 제목 중 일부는 what's
과 같은 단어로 곱슬 어포스트로피를 포함합니다.URL을 하이픈 넣고 중선 아포스트로피를 무시하는 PHP 정규식
이 마이그레이션을 수행하면서 사이트 레이아웃을 단순화하고 URL을보다 직관적으로 만들기 위해 많은 URL을 변경했습니다.
이전 URL에 대한 요청을 캡처 한 다음 새 페이지의 제목을 기반으로 사용자를 새 URL로 리디렉션하는 전달 시스템을 설정하려고합니다.
Drupal은 생성 된 URL에서 이러한 curlies를 인코딩하지만 내 전달자가이를 제거하기 때문에 제목에 둥근 아포스트로피가 포함 된 페이지를 제외하고는 매우 잘 작동합니다! 현재
나는이 표현 사용하여 페이지 제목을 정리 : 표준이 아닌 문자와 공백 대신 하이픈 (-
)를 대체 할 ...
/[^a-z\-\d]+/i
(A preg_replace이다와)
을 .
저는 곱슬 어포 스트로피가 다르게 인코딩되어이 표현식에 의해 트랩되고 제거된다는 것을 알고 있습니다.
곱슬 아포스트로피를 무시하고 하이픈으로 변환하지 않도록 정규식에 어떻게 알립니 까?
아포스트로피는 몇 가지 종류가 있습니까? 하나만있는 경우 str_replace (" '", "", $ value)로 바꾸면 어떨까요? – Bernhard
Bernhard에게 감사드립니다. 문제는 마이그레이션 프로세스 중에 Drupal에 의해 생성 된 모든 URL에 포함되어 있기 때문에 URL을 제거하지 않고 보존해야한다는 것입니다. 그래서 나는 그 순간에 나는 그 (것)들을 제거하고있는 동안 curlies를 유지하고 싶고 나는 이것을 할 길을 찾을 수 없다. – Chris
ok chris, [^ a-z- \ d ']는 무엇입니까? 그런데 REPLACE()를 사용하여 데이터베이스 쿼리에서 어포 스트로피를 간단하게 제거 할 수 있습니다. – Bernhard