2011-08-26 5 views
1

내 생각은 우리가 지금 단계대시와 공백을 대체하는 방법

$text = "Hello world)<b> (*&^%$#@! it's me: and; love you.<p>"; 

에 의해 단계를 수행하게 대시 특수 문자 및 HTML 코드를 제거하고 공백을 대체하는 것입니다 내가있어 출력이 Hello-world-its-me-and-love-you 가되고 싶어 나는 그래서 난이 공동을 수정할 수있는 방법이

$array = array(); 
$array[0] = "/<.+?>/"; 
$array[1] = "/[^a-zA-Z0-9 ]/"; 

$textout= preg_replace($array,"",$text); 

지금 출력이 Hello world its me and love you 처럼 될 것입니다 특수 문자와 HTML 코드의 제거를 위해이 코드를 피곤했습니다 내가 필요 Hello-world-its-me-and-love-you

을로 드 있도록 텍스트 출력은 정확한 될 ~ 당신이

답변

2

strip_tags을 사용하면 html 태그를 제거하는 것이 더 나을 것입니다. 그런 다음 regexp를 사용하여 영숫자가 아닌 (또는 공백이 아닌) 문자를 모두 제거하십시오. 그런 다음 str_replace을 사용하여 공백을 하이픈으로 간단히 변환 할 수 있습니다. 참고 여러 행을 하나의 공백으로 축소하는 행을 추가했습니다. 행에서 공백을 사용했기 때문입니다. 그렇지 않으면 world-its-me 대신 world--its-me이됩니다.

<?php  
    $text = "Hello world)<b> (*&^%$#@! it's me: and; love you.<p>"; 
    $text = strip_tags($text); 
    $text = preg_replace('/[^a-zA-Z0-9 ]/', '', $text); 

    //this is if you want to collapse multiple spaces to one 
    $text = str_replace (' ', ' ', $text); 

    $text = str_replace (' ', '-', $text); 
?> 
1

그냥 hypens과 공간을 대체 할 마지막 행 다음에

$textout = str_replace(' ', '-', $textout); 

을 추가 할 수 있습니다 감사합니다.

관련 문제