如何自动将字体添加到样式表中?

时间:2017-09-13 05:40:42

标签: javascript php jquery css fonts

如果我在“fonts”目录中有更多TTF字体文件,那么 有没有办法自动将它们添加到该部分? 我想一个读取dir并生成列表的PHP文件可以完成 - 是吗?

像这样(我包括这种风格,但我希望添加这个,如果文件夹有更多字体,则自动添加):

<style type="text/css">

  @font-face
  {
   font-family: Baksoda;
   src: url('fonts/Baksoda.ttf');
  }

  @font-face
  {
  font-family: CherrySwash-Regular;
  src: url('fonts/CherrySwash-Regular.ttf');
  }

  @font-face
  {
   font-family: Riya-Black;
   src: url('fonts/Riya-Black.ttf');
  }
 </style>

2 个答案:

答案 0 :(得分:0)

您好,您可以尝试使用scandir()。我一直在寻找EmilVikström的答案:

Loop code for each file in a directory

一旦你有这个可能这可以给你一个想法:

<style>
<?php
$files = scandir('fonts/');
foreach($files as $file){
if(strpos($file,'.ttf') !== false){
echo "@font-face{font-family:".str_replace('.ttf','',$file).";src:url('fonts/".$file."')}";
}
}
 ?>
</style>

答案 1 :(得分:0)

此代码适用于您

<?php 

	function getResultStyleString($directoryName)
	{
		$styleText = '<style type="text/css">';
		
		$filesList = scandir($directoryName);
		
		foreach($filesList as $file)
		{
			if(strpos($file,'.ttf') !== false)
			{
				$styleText .= "@font-face{font-family:" . str_replace('.ttf', '', $file).";src:url('fonts/" . $file . "')}";
			}
		}
		
		$styleText .= '</style>';
		
		return $styleText;
	}
	
	$directoryName = "fonts/";
	$resultStyleString = getResultStyleString($directoryName);
	
	var_dump($resultStyleString);
?>