Jump to content


Photo

Preciso Abrir Arquivo Css Achar último Estilo


  • Faça o login para participar
3 replies to this topic

#1 sandro_candido

sandro_candido

    Normal

  • Usuários
  • 114 posts
  • Sexo:Não informado

Posted 05/06/2008, 11:29

Seguinte preciso de um esquema funcional em que seja possível abrir um arquivo .css de forma dinâmica. Dai achar o último estilo neste arquivo e acrescentar mais um, caso o estilo a ser acrescentado já exista o mesmo seja ignorado. Desde já agradeço a quem puder ajudar.

#2 MarcoviZ

MarcoviZ

    ubuntu for human being

  • Usuários
  • 1137 posts
  • Sexo:Não informado

Posted 05/06/2008, 12:21

Procura por:
file_get_contents
A parte de substituir e fazer a verificação acredito que seja via ER's...

té +
[]'s

#3 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 05/06/2008, 12:25

Você pode fazer o seguinte:
Leia o arquivo com a função file_get_contents
Procure o último caracter } utilizando a função strpos
Pegue o pedaço da string até a posição que se encontra o caracter }
Adicione à string o estilo que quer e depois adicione o caracter }
Grave o arquivo com file_put_contents
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#4 sandro_candido

sandro_candido

    Normal

  • Usuários
  • 114 posts
  • Sexo:Não informado

Posted 05/06/2008, 12:56

Tenho este método:

/**
	 * método show()
	 */
	public function show()
	{
		$arquivo = SISTEMA_DIR_RAIZ."templates/admin/visual/ACadastraNews.css";
		parent::__construct($arquivo);

			$css = "\n.{$this->nome}\n";
			$css .= "{\n";
			if ($this->propriedades)
			{
				// percorre as propriedades
				foreach ($this->propriedades as $nome=>$valor)
				{
					$css .= "\t {$nome}: {$valor};\n";
				}
			}
			$css .= "}\n";

		parent::escreve($css);
		}
}

Ele já está acrescentando o estilo, porém, se eu carregar a mesma página novamente ele acrescenta o estilo mais um vez no arquivo, ou seja o estilo fica duplicado.

Obs: método Escreve aqui:

public function escreve($conteudo) {
		// Tendo certeza que o arquivo existe e que há permissão de escrita primeiro.
		if (is_writable($this->arquivo)) {
		   // Abre $this->arquivo em modo de append (acréscimo).
		   // O ponteiro do arquivo estará no final dele desde
		   // que será aqui que $conteudo será escrito com fwrite().
		   if (!$handle = fopen($this->arquivo, "a")) {
				print "Erro abrindo arquivo ($this->arquivo)";
				exit;
		   }
		   // Escrevendo $conteudo para o arquivo aberto.
		   if (!fwrite($handle, $conteudo)) {
			   print "Erro escrevendo no arquivo ($this->arquivo)";
			   exit;
		   }		
		   fclose($handle);
		}else{
			 print "Erro arquivo ($this->arquivo) não tem permissão de escrita";
		}
	}

Edição feita por: sandro_candido, 05/06/2008, 13:00.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq