Cita:  al script le pasaria la variable $dir (que contiene el nombre del fichero)
    Me parece que lo que intentas hacer es que $dir contenga el directorio donde se encuentran los ficheros ¿no? 
Si este es el caso puedes hacer esto: 
 Código PHP:
    $dir = "html/user/frases/";
 
$dirobj = dir($dir);
chdir($dir);
while($archivo = $dirobj->read()) {
    if ( is_file($archivo) ) { 
        $lineas = file($archivo);
        $contenido = implode("", $lineas);
        ereg('"(.*)"', $contenido, $frase);
        $frases[] = $frase[1];
    } 
}
$dirobj->close(); 
    
  Aqui se usan las funciones de directorios para recorrer los archivos que estan dentro del directorio pasado por $dir (mas especificamente la funcion dir()), despues se comprueba con is_file() si $archivo es un archivo (medio obvio), esto es porque la lista que obtienes con $dirobj->read() puede contener tambien nombres de carpetas o links (accesos directos).
Luego con implode() se crea una cadena a partir del array devuelto por file() y se usa ereg para sacar lo que esta entre comillas en cada archivo. 
Bueno, despues de esto tenés un array con la frase que estaba en cada fichero, y podrias usar foreach para recorrerlo. 
 Código PHP:
    foreach( $frases as $val) {
    echo "Frase: $val<br>\n";
} 
    
  Saludos!