<?php
$kwordsfile = fopen("db/keywords.txt", "r");
while (!feof($kwordsfile)) {
$kwords = fgets($kwordsfile);
?>
<tr>
<td style="padding:3px;">
<a href="listele.php?keyword=<?php echo $kwords;?>&tarih=<?php echo $_GET["tarih"] ?>"><?php echo $kwords;?></a>
<?php
$file = file('txt/'.date('n-j-Y').'.txt');
$count = 0;
foreach ($file as $line) {
if (strpos($line, ".net") !== false && strpos($line, $kwords) !== false) {
$count++;
}
}
echo " <b>( $count</b> adet )";
?>
</td>
</tr>
<?php
}
fclose($kwordsfile);
?> Text dosyasından bir değişken alıp başka bir text dosyasında aratma // PHP
7
●80
- 17-02-2023, 23:45:31Arkadaşlar aşağıdaki koddaki hata nedir? keywords.txt dosyasında her satırda bir kelime var. bunları ekrana yazdırıyorum. daha sonra da 17-02-2023.txt isimli dosyada keywordstan aldığı satırdaki içerik kaç yerde geçiyorsa saydırıp ekrana yazdırmak istiyorum ama 0 olarak görünüyor. nerede yanlışlık yapıyorum?
- 17-02-2023, 23:52:46Chatgpt cevabı;
Kodunuzda birkaç potansiyel sorun var:- Dosya yollarınızın doğru olduğundan emin olun. keywords.txt dosyasının doğru yolda olduğundan ve listele.php dosyasında txt/ klasörünün doğru olduğundan emin olun.
- Dosya adlarınızın doğru olduğundan emin olun. listele.php dosyasını "17-02-2023.txt" olarak adlandırmak istediğinizi belirttiniz, ancak kodunuzda bunu kullanmadığınızı fark ettim. Dosya adının doğru olduğundan emin olun.
- $kwords değişkenini dosya adında kullanırken özel karakterler olabilir. Dosya adında özel karakterler varsa, dosya sistemleri farklı davranabilir. $kwords değişkenini dosya adında kullanmadan önce özel karakterlerden arındırdığınızdan emin olun.
- Kodunuzun strpos fonksiyonunu doğru kullanıp kullanmadığınızı kontrol edin. strpos fonksiyonu, bir dize içinde başka bir dizeyi arar. İlk parametresi aranacak dize, ikinci parametresi aranacak kelime. Ancak kodunuzda ilk parametre .net olarak belirtilmiş, ancak size 17-02-2023.txt dosyasının içeriğini saymanız isteniyor. Bu nedenle, ilk parametreyi $line olarak değiştirmeniz gerekiyor.
<?php $kwordsfile = fopen("db/keywords.txt", "r"); while (!feof($kwordsfile)) { $kwords = fgets($kwordsfile); $kwords = trim($kwords); // özel karakterleri kaldır $count = 0; $filename = "txt/17-02-2023.txt"; // dosya adını düzelt if (file_exists($filename)) { $file = file($filename); foreach ($file as $line) { if (strpos($line, $kwords) !== false) { // strpos kullanımını düzelt $count++; } } } ?> <tr> <td style="padding:3px;"> <a href="listele.php?keyword=<?php echo $kwords;?>&tarih=<?php echo $_GET["tarih"] ?>"><?php echo $kwords;?></a> <b>( <?php echo $count; ?> adet )</b> </td> </tr> <?php } fclose($kwordsfile); ?>
Bu kod, her kelime için belirtilen dosyada kaç kez geçtiğini doğru şekilde sayacaktır. - 17-02-2023, 23:56:46çok teşekkürler hocam. oldu.hakancevik adlı üyeden alıntı: mesajı görüntüle
- 17-02-2023, 23:57:54ben teşekkür ederim hocam, chatgpt'yi bir kodumda hata ile karşılaştığımda sıkca kullanıyorum en son ilk72.com için destek almıştım baya işe yarıyorPetitJoueur adlı üyeden alıntı: mesajı görüntüle
- 17-02-2023, 23:58:51ben de kullanıyorum hocam da böyle kodu yapıştırınca hata bul mu diyorsun? yada ne dedin de düzeltti?hakancevik adlı üyeden alıntı: mesajı görüntüle
- 18-02-2023, 00:03:44ben normal muhabbet eder gibi soruyorum hocam çözüyor yapay zeka da olsa emir verir gibi konuşmak kötü hissettiriyor rica ediyorumPetitJoueur adlı üyeden alıntı: mesajı görüntüle
- 18-02-2023, 00:16:49ben de deneyeyim bakayım. altalta gösteriyor şimdi tüm listeyi. bunları 4 sütunlu şekilde nasıl listelerim diye sordum birşeyler yazıyorhakancevik adlı üyeden alıntı: mesajı görüntüle
bakalım ne çıkaracak.
EDİT: Yaptı
- 18-02-2023, 00:17:54ben 400 satırlı bi kodu berbat etmiştim çözmeye çalıştıkça daha çok bozdum en son chatgptye sordum şuna bi el at işlemcin aşkına diye tek seferde çözdüPetitJoueur adlı üyeden alıntı: mesajı görüntüle