Hocam süpersin ya. Tam mantığını anlatabilir misin?
preg_match_all('/<h[1-6]>(.*?)<\/h[1-6]>/', $content, $cikti);Bu kısmında $cikti match olan tüm sonucu döndürmekte. Örneğin h1 buldu ise $cikti[0] da "<h1>h1_icerik</h1>", $cikti[1] de ise "h1_icerik" şeklinde aynı keye bağlı array döndürmekte.
Görsel olarak aşağıda ki gibi
Array
(
[0] => Array
(
[0] => <h1>h1_icerik </h1>
[1] => <h2>h2</h2>
[2] => <h3>h3</h3>
[3] => <h4>h4</h4>
[4] => <h5>h5</h5>
[5] => <h6>h6</h6>
)
[1] => Array
(
[0] => h1_icerik
[1] => h2
[2] => h3
[3] => h4
[4] => h5
[5] => h6
)
)
Sonrasında foreach e $cikti[0] ı sokuyoruz 'key' ile. Döngüde o anki key verinin hem ham halini hem de içerik halini bulmamız için lüzumlu.
Döngüde elimizde key dahil 3 veri oluyor
$cikti[0][$key] = <h1>h1_icerik</h1>
$cikti[1][$key] = h1_icerik
Geri kalan içlem replace ile değişikliği yapmak. "
<h1>h1_icerik</h1>($cikti[0][$key] ) içeriği bulup
<h1 id="h1_icerik($cikti[1][$key] )">h1_icerik($cikti[1][$key] )</h1>" ile değiştirmek.