Exacto puedes directamente manipular el ancho usando JS, y para hacer lo que quieres ya sea usar AJAX, o redireccionar al mismo script pasando el valor por GET a tu script.
Por ejemplo:
Código PHP:
Ver original<?php
if (!isset($_GET['ancho']) { ?>
<script language="javascript" type="text/javascript">
var screenwidth = screen.width;
document.location = document.location + "?ancho=" + screenwidth;
</script>
<?php
}
$ancho = $_GET['ancho'];
Ese script primero va a detectar si no existe y si no existe hace el script javascript y luego recarga la pagina enviando el valor del ancho a PHP.
Te recomiendo leer esto:
http://www.php.net/variables.external.