lo siguiente es parte de myfunction que abre un archivo y coloca el puntero al final. A continuación, prueba cada carácter $char
en orden inverso hasta que encuentra una línea nueva o un carácter de retorno de carro.Detectar un carácter de nueva línea
El problema es que no reconoce estos caracteres.
La función es la siguiente:
while(count($results) < $limit && fseek($this->_pointer, $offset, SEEK_END) >= 0) {
$char = fgetc($this->_pointer);
if($char == '\n' || $char == '\r'){
print("YAY");
$offset --;
$data = $this->explodeData(fgets($this->_pointer, 1024));
array_push($results, $this->formatRow($data));
}
$offset--;
}
Nunca se las arregla para print("YAY")
sin embargo se está probando con éxito cada carácter. El archivo que está leyendo definitivamente tiene nuevas líneas en él. (El archivo fue creado por otra función y ha tenido "\n"
inserta en ella, se trata de mostrar en su interior y está mostrando en mi IDE con éxito como estar en líneas alternas).
¿Alguien sabe por qué no puede reconocer estos caracteres de nueva línea?
Este procedimiento parece exagerado un poco ... ¿Cuál es el objetivo de este procedimiento? Si desea extraer una de las últimas líneas, sería mejor que use "file()" y obtenga las últimas entradas en la matriz. –
¿Se considera "\ n" un personaje o dos caracteres? Está compuesto por dos caracteres ('\' y 'n'), de modo que ¿tu secuencia de comandos no fallaría si solo revisas un carácter a la vez? –
@ RunarJørgensen '" \ n "' se convierte en un carácter de nueva línea –