Skocz do zawartości

funkcja otwierająca daną linię z pliku


michalk

Rekomendowane odpowiedzi

Pierwsze słysze to takiej funkcji ... Może masz na myśli fseek

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

A funkcja fseek to jaka jest niby jest - nienormalna :)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

function strpos_count($haystack, $needle, $i = 0) { 
while (strpos($haystack,$needle) !== false) {$haystack = substr($haystack, (strpos($haystack,$needle) + 1)); $i++;} 
return $i; 
} 
function getLine($file,$line=1){ 
$occurence = 0; 
$contents = ''; 
$startPos = -1; 
if (!file_exists($file)) return ''; 
$fp = @fopen($file, "rb"); 
if (!$fp) return ''; 
while (!@feof($fp)) { 
	$str = @fread($fp, 1024); 
	$number_of_occurences = strpos_count($str,"\n"); 
	if ($number_of_occurences == 0) {if ($start_pos != -1) {$contents .= $str;}} 
	else { 
		$lastPos = 0; 
		for ($i = 0; $i < $number_of_occurences; $i++){ 
			$pos = strpos($str,"\n", $lastPos); 
			$occurence++; 
			if ($occurence == $line) { 
				$startPos = $pos; 
				if ($i == $number_of_occurences - 1) {$contents = substr($str, $startPos + 1);} 
			} elseif ($occurence == $line + 1) { 
				if ($i == 0) {$contents .= substr($str, 0, $pos);} else {$contents = substr($str, $startPos, $pos - $startPos);} 
				$occurence = 0; 
				break; 
			} 
			$lastPos = $pos + 1; 
		} 
	} 
} 
@fclose($fp); 
return $contents; 
}

Odnośnik do komentarza
Udostępnij na innych stronach

... a może poszli do lasu... Będziemy teraz zgadywać jaka to może być funkcja ....

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Linia wyciągana przez zmienną kat=[nr linii]

<?php

$linia = $_GET[kat];

$fd = fopen("cennik.csv", "r");
$c = 1;

while(!feof($fd)) {
 if($linia == $c) {

	  $buff = fgets($fd);
		$temp=explode('";"',$buff);

		echo '<a href="'.$temp[0].'">'.$temp[1].'</a>';

	  break;
 } else {
	  fgets($fd);
	  $c++;
 }
}

fclose($fd);

?>

...

Odnośnik do komentarza
Udostępnij na innych stronach

W PHP tablice indeksujemy od zera. Do tego można dodać zabezpieczenia przez potencjalnymi problemami:

<?php
function getLine($file_name, $line=1){
  $line--; // tablice indeskujemy od zera
  $file_array = file($file_name, FILE_IGNORE_NEW_LINES);

  if($file_array !== false && isset($file_array[$line]))
  return $file_array[$line];
  else
  return false;
}
?>

I przykład użycia:

<?php
if( ($dane = getLine('plik.txt', 10)) !== false )
  echo $dane;
else
  echo 'blad odczytu';

Skrypt chroniący zasoby serwera przed atakami botów exaBotDefender: https://docs.google.com/View?id=dgkd4pj4_0hfj5j4gx

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności