Reg exp çizgi olmayan tüm alfanümerik karakterleri değiştirmek için aranan

2 Cevap php

Ben SEO dostu URL'ler oluşturmak için bir reg exp istiyorum, bu yüzden gibi şeyler:

My product name

olur

My_product_name

This is a long,long,long!!sentence

olur

This_is_a_long_long_long_sentence

Temelde böylece tüm alfasayısal olmayan karakter çıkarılır ve çizgi ile değiştirilir.

Herhangi bir fikir?

2 Cevap

preg_replace('/[^a-zA-Z0-9]+/', '_', $sentence)

Temelde alfasayısal olmayan herhangi bir karakter dizisi arar ve bir single '_' ile değiştirir. Bu şekilde, aynı zamanda çıkış içinde iki ardışık _ bulunuyor sahip kaçının.

Bu URL'ler için ise, muhtemelen de onları sadece küçük harf olmak istiyorum:

preg_replace('/[^a-z0-9]+/', '_', strtolower($sentence))

 $a = preg_replace("/[^A-Za-z0-9]+/", "_", $str);

veya / \ W + / Eğer geçerli yerele bir "mektup" olarak kabul edilir her şeyi tutmak istiyorsanız

değişiminden sonra da baştaki ve sondaki altçizgi STIP için gerekliyse olabilir

 $a = trim($a, '_');