Tôi đang cố gắng để loại bỏ tất cả những gì không phải là chữ và số, hoặc là một không gian với _:gian Loại bỏ bất cứ điều gì và đó không phải là chữ và số
$filename = preg_replace("([^a-zA-Z0-9]|^\s)", "_", $filename);
Tôi đang làm gì sai ở đây, nó không có vẻ công việc. Tôi đã thử một số kết hợp regex ... (và tôi thường không phải là rất tươi sáng).
Tôi hơi confused-- bạn có muốn thay thế dấu cách bằng dấu "_" hay không? – climbage
Vâng, vì một điều bạn đã bỏ qua khá nhiều ký tự: 'ˋunichars -a '[\ p {Alpha} \ p {Số}]' '[^ a-zA-Z0-9]' | wc -lˋ == 14717'. Không phải là một nơi tốt để bắt đầu. – tchrist
Bạn nên đặt '\ s' trong dấu ngoặc vuông. Nếu không '^ \ s' chỉ khớp các khoảng trắng ở đầu'^'của đối tượng. Cũng sử dụng '/../' để bao quanh, các dấu ngoặc tròn chỉ để chụp. – mario