Merhaba R10!
Örnek veriyorum benim .txt dosyası içerisinde şu tarz bir yazım var alt alta
ahmet
mehmet
ceren
secil
Bu isimlerin başına php ile ; işaretini bir türlü koyduramadım satır sonunu algılatamadım nasıl yapabilirim acaba bu işlem gerçekleşinde işlem çıktısı şöyle olmalı.
;ahmet
;mehmet
;ceren
;secil
PHP dosya başına yazı yazma.
6
●138
- 15-01-2021, 11:34:40
- 15-01-2021, 11:46:47Üyeliği durduruldu
// önce dosya içeriğini çektik $dosya_icerigi = file_get_contents('dosya.txt'); // regex ile satır başlarına ; ekledik $yeni_dosya_icerigi = preg_replace('/^/m', ';', $dosya_icerigi); // dosyayı kaydettik file_put_contents('dosya.txt', $yeni_dosya_icerigi);- File_get_contents fonksiyonu belirtilen konumdaki dosyanın içeriğini getirir.
- Preg_replace fonksiyonu belirtilen Regex'e uyan sonuçları belirtilen string ile değiştirir. ^ işareti Regex'te satır başı anlamına gelir. /m ile Regex seçicisinin multiline yani çoklu satır seçmesini sağlar.
- File_put_contents fonksiyonu belirtilen konuma dosya içeriğini yazar.
- 15-01-2021, 11:49:39Çok teşeşkürler @awoken;awoken adlı üyeden alıntı: mesajı görüntüle
- 15-01-2021, 11:56:07@awoken; Peki son bir şey daha sormak istiyorum örnek veriyorum eğer bütün satır başlarında ;(noktalı virgül) var ise AÇIK yazıdırcam yok ise KAPALI yazıdırcam bu mümkünmü ?
- 15-01-2021, 12:00:26Üyeliği durdurulduDosya İçeriği:ardakarakas adlı üyeden alıntı: mesajı görüntüle
;ahmet mehmet ceren ;secil
Kod:
// önce dosya içeriğini çektik $dosya_icerigi = file_get_contents('dosya.txt'); // PHP_EOL = satır ayracı. Explode ile satırlara ayırıyoruz. $satirlar = explode(PHP_EOL, $dosya_icerigi); // foreach ile satırlarda dolaşıyoruz. foreach($satirlar as $satir) { echo $satir.' -------------> '; // eğer satırın ilk karakteri ; ise if($satir[0] === ';') { echo 'AÇIK'; } else { echo 'KAPALI'; } echo '<br/>'; }Çıktı:
;ahmet -------------> AÇIK mehmet -------------> KAPALI ceren -------------> KAPALI ;secil -------------> AÇIK
Edit: Yanlış okumuşum ben soruyu. Tüm satırların ; ile başladığı da şöyle kontrol edilir.
$dosya_icerigi = file_get_contents('dosya.txt'); // PHP_EOL = satır ayracı. Explode ile satırlara ayırıyoruz. $satirlar = explode(PHP_EOL, $dosya_icerigi); $DURUM = ''; // foreach ile satırlarda dolaşıyoruz. foreach($satirlar as $satir) { // eğer satırın ilk karakteri ; ise if($satir[0] === ';') { $durum = 'AÇIK'; } else { $durum = 'KAPALI'; break; } } print $durum; - 15-01-2021, 13:21:42Peki arkadaşım şey bunların başlarına ; koydurduk ya hani peki bunları geri nasıl sildiricez ben buton ile post yolluyorum tamam ama bunları geri nasıl sildirme yapacağız?