hoi,

Ik heb een scriptje wat planeetstanden uitrekent mbv een binary 'swetest', die heb ik zelf hier gebakken en werkt op m'n linux mint bak, werkte ook bij neostrada, maar ik wil naar vimexx en daar werkt het niet.
Ik heb ze gemaild of ze kunnen testen maar ze zeggen dat ik bij een programmeur moet zijn. :)
Ik heb even geen idee wat ik kan doen. Ik heb ze gevraagd of ze daar swetest op de cmdline willen testen voor me maar dat doen ze dus niet. En function_exists(exec) geeft wel true dus het zou moeten kunnen.
Ik heb er trouwens 2 versies van swetest staan, een 32 en een 64 bits, beide geven geen sjoege.
Wat kan ik doen?

Voor de vollledigheid, dit is de code, de regel met exec() staat in het midden.

<?php
  $swephsrc = '/home/blabla/public_html/se/';
  $sweph = '/home/blabla/public_html/se/';
  unset($PATH,$out,$longitude,$speed);
  $date_now = date ("Y-m-d");
  $inmonth = strftime("%m", time());
  $inday = strftime("%d", time());
  $inyear = strftime("%Y", time());
  $inhours = strftime("%H", time());
  $inmins = strftime("%M", time());
  $insecs = strftime("%S", time());
  $intz = (strftime("%z", time()) / 100);     //time zone on server
  if ($intz >= 0)
  {
    $whole = floor($intz);
    $fraction = $intz - floor($intz);
  }
  else
  {
    $whole = ceil($intz);
    $fraction = $intz - ceil($intz);
  }
  $inhours = $inhours - $whole;
  $inmins = $inmins - ($fraction * 100);  //this was 60, but Adrián Argüelles noted an error when time zones like +10.30 were used
  // adjust date and time for minus hour due to time zone taking the hour negative
  $utdatenow = strftime("%d.%m.20%y", mktime($inhours, $inmins, $insecs, $inmonth, $inday, $inyear));
  $utnow = strftime("%H:%M:%S", mktime($inhours, $inmins, $insecs, $inmonth, $inday, $inyear));
  $transit_date_time = strftime("%d %B 20%y", mktime($inhours, $inmins, $insecs, $inmonth, $inday, $inyear)) . " at " . strftime("%H:%M", mktime($inhours, $inmins, $insecs, $inmonth, $inday, $inyear));;
  putenv("PATH=$swephsrc");
  // get 10 planets

  exec ("swetest -edir$sweph -b$utdatenow -ut$utnow -p0123456789mD -eswe -fPls -g, -head", $out);

  // Each line of output data from swetest is exploded into array $row, giving these elements:
  // 0 = planet name
  // 1 = longitude
  // 2 = speed
  foreach ($out as $key => $line)
  {
    $row = explode(',',$line);
    $longitude[$key] = $row[1];
    $speed[$key] = $row[2];
  };

echo '<center><table><tr>';
for ($i = 0; $i < 12; $i++)
  {
  echo "<td nowrap><img src='http://jcremers.com/se/img/$i.gif'>" .  ' ' . Convert_Longitude($longitude[$i]);
  if ($speed[$i] < 0) echo "r";
  }
echo '</table></center>';

function Convert_Longitude($longitude)
{
  $sign_num = floor($longitude / 30);
  $pos_in_sign = $longitude - ($sign_num * 30);
  $deg = floor($pos_in_sign);
  $full_min = ($pos_in_sign - $deg) * 60;
  $min = floor($full_min);
  $full_sec = round(($full_min - $min) * 60);
  if ($deg < 10) { $deg = "0" . $deg; }
  if ($min < 10) { $min = "0" . $min; }
  if ($full_sec < 10) { $full_sec = "0" . $full_sec; }
  //return $deg . " " . $signs[$sign_num] . " " . $min . "' " . $full_sec . chr(34);
  $sign_num += 16;
  $img = "<img src='http://jcremers.com/se/img/$sign_num.gif'>";
  return $deg . " " . $min . "' " . $full_sec . chr(34) . " " . $img;
}
?>

Als ik alles in de root, public_html, zet werkt alles.
Ik moet ook een path zetten omdat de binary ook weer bestanden raadpleegt met ephemeriden, dus ik ben bang dat dat niet werkt, ik zal het nog eens proberen.

[size=xsmall]Toevoeging op 22/08/2021 13:25:58:[/size]

sorry, swetest gebruikt al parameters, waaronder dus die paden:

$sweph = './';
exec ("./swetest -edir$sweph -b$utdatenow -ut$utnow -p0123456789mD -eswe -fPls -g, -head", $out);


[size=xsmall]Toevoeging op 22/08/2021 13:31:53:[/size]

en bovendien moeten die bestanden in het pad staan dus ook:

$swephsrc = './';
putenv("PATH=$swephsrc");

Leuke puzzel :) Maar ik heb het in ieder geval aan de praat, al is het in de root, ach..
als je ./ zou vervangen naar bijvoorbeeld /se dan zou het toch ook moeten werken in de se map? of enkel / gebruiken?
@Ray, is me niet gelukt, ik vind het best zoals het nu werkt.

Reageren