굿모닝 코딩 젊은이,정규 표현식 청소 방법 PHP
내가 너무 깨끗하고 파일 이름에 특수 문자 (&, * 등)
이 내 코드의 모습을 어떻게에서 작은 정규식을 쓰고 있어요 :
를public function clean($string, $bool = false)
{
$string = html_entity_decode($string, ENT_QUOTES);
$string = str_replace("'", "", $string);
$string = str_replace('"', "", $string);
$string = str_replace("&", "en", $string);
$string = str_replace("-", "_", $string);
//ALLE VAGE TEKENS VERVANGEN MET _
$weirdChars = Proces::normalInput($string , true);
if(count($weirdChars[0]) > 0)
{
foreach($weirdChars[0] as $char)
{
$string = str_replace($char, "_", $string);
}
}
if($bool)
$string = ucfirst(preg_replace('!_+!', '_', strtolower($string)));
else
$string = preg_replace('!_+!', '_', strtolower($string));
if(isset($string[0]) && $string[0] == "_")
$string = substr($string, 1);
if(substr($string, -1) == "_")
return substr($string,0,-1);
return $string;
}
public function normalInput($string, $bool = false) //STRING
{
$patern = '/[^_a-zA-Z0-9-]/';
if(preg_match_all($patern, $string, $matches))
{
if($bool)
return $matches;
else
return false;
}
else
{
if($bool)
return $matches;
else
return true;
}
}
이 두 가지 방법은 함께 작동하며 완벽하게 작동하지만 약간의 문제가 있음을 확인했습니다.
$patern = '/[^_a-zA-Z0-9-]/';
이 좋다하지만 난 파일 이름에있는 점을 제외하려는이 (그렇지 않으면 내 파일 확장자 대신 blaatfoo.pdf의 blaatfoo_pdf 같은 얻을 것이다) : 나는 normalInput 방법에 사용 패턴은 같다.
도와 주실 수 있습니까?
친절 감사를
Jordy Suos는
탑, bedankt를)! – Jordy