Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: usuwanie linii z pliku krótszej niż określona ilość znaków
Forum PHP.pl > Forum > PHP
thecgla
Pisze sobie parser do ściągania danych z mojej strony www. Chciałbym otrzymywać sam tekst dłyższy niż okręślona ilość znaków czyli same zdania bez nazw kategorii itp.

Oto mój kod:
  1. <?php
  2.  
  3.  
  4. # create and load the HTML
  5. include('simple_html_dom.php');
  6.  
  7.  
  8. $tekst = file_get_html('http://www.naszawiedza.pl/')->plaintext;
  9.  
  10. foreach ($tekst as $key=>&$value) {
  11. if (strlen($value) > 60) {
  12. unset($yourArray[$key]);
  13. }
  14. }
  15.  
  16. echo $tekst;
  17.  
  18. //kropka
  19. $string = $tekst;
  20. $substr = '.';
  21. $attachment = "\r\n";
  22. //$position = strpos($string, 'a');
  23. $newstring = str_replace($substr, $substr.$attachment, $string);
  24. // bca+++def a+++bcdef
  25.  
  26. //znak zapytania
  27. $string = $tekst;
  28. $substr = '?';
  29. $attachment = "\r\n";
  30. //$position = strpos($string, 'a');
  31. $newstring = str_replace($substr, $substr.$attachment, $string);
  32. // bca+++def a+++bcdef
  33. //podwójna spacja
  34. $string = $tekst;
  35. $substr = '\r\n\r\n';
  36. $attachment = "\r\n";
  37. //$position = strpos($string, 'a');
  38. $newstring = str_replace($substr, $substr.$attachment, $string);
  39. // bca+++def a+++bcdef
  40.  
  41. //Wykrzyknik
  42. $string = $tekst;
  43. $substr = '!';
  44. $attachment = "\r\n";
  45. //$position = strpos($string, 'a');
  46. $newstring = str_replace($substr, $substr.$attachment, $string);
  47. // bca+++def a+++bcdef
  48.  
  49. //tabulator
  50. $string = $tekst;
  51. $substr = ' ';
  52. $attachment = "\r\n";
  53. //$position = strpos($string, 'a');
  54. $newstring = str_replace($substr, $substr.$attachment, $string);
  55. // bca+++def a+++bcdef
  56. echo $newstring;
  57.  
  58.  
  59.  
  60.  
  61.  
  62. // zmienna $dane, która będzie zapisana
  63. // może także pochodzić z formularza np. $dane = $_POST['dane'];
  64. $dane = $newstring;
  65.  
  66. // przypisanie zmniennej $file nazwy pliku
  67. $file = "testy.txt";
  68.  
  69.  
  70.  
  71. // uchwyt pliku, otwarcie do dopisania
  72. $fp = fopen($file, "a");
  73.  
  74. // blokada pliku do zapisu
  75. flock($fp, 2);
  76.  
  77. // zapisanie danych do pliku
  78. fwrite($fp, $dane);
  79.  
  80. // odblokowanie pliku
  81. flock($fp, 3);
  82.  
  83. // zamknięcie pliku
  84. fclose($fp);
  85.  
  86. //usun puste wiersze
  87. $plik = "testy.txt";
  88.  
  89. // odczyt
  90. $bufor = array();
  91. $fd = fopen($plik, "r");
  92. while (!feof ($fd))
  93. {
  94. $linia = fgets($fd, 1024);
  95. if(strlen(trim($linia)))
  96. {
  97. $bufor[] = $linia;
  98. }
  99. }
  100. fclose($fd);
  101.  
  102. // zapis
  103. $fdw = fopen($plik, "w");
  104. foreach($bufor as $wiersz)
  105. {
  106. fwrite($fdw, $wiersz);
  107. }
  108. fclose($fdw);



Nie wiem czym i jak to ugryźć składam program z dostępnych w internecie przykładów.

Pyton_000
Ale w czym masz problem?
thecgla
Cytat(Pyton_000 @ 22.03.2017, 18:56:16 ) *
Ale w czym masz problem?



Chciałbym otrzymywać sam tekst dłuższy niż określoną ilość znaków czyli same zdania bez nazw kategorii itp.


Czyli Jak usunąć wiersze w pliku krótsze niż np 100 znaków i jednocześnie muszą się zaczynać dużą literą i kończyć kropką znakiem zapytania lub wykrzyknikiem.
Tomplus
Jeżeli to Twoja strona, to nie lepiej stworzyć kod który będzie wyświetlał prostą treść, w postaci JSON, XML, cokolwiek?

Dwa... jak używasz simple_html_dom to po co pobierasz to jako plaintext?
Nie lepiej od razu zacząć pobieranie całych fragmentów kodu?

http://simplehtmldom.sourceforge.net/
thecgla
Albo inaczej: Jak odfiltrowywać wszystko co zaczyna się dużą litera i kończy kropką znakiem zapytania lub wykrzyknikiem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.