Arduino Remote Sketch Upload with a twist

I connect to my duemilove via serial to PHP. Something in the way serial works the connection is reset after each call. So the solution is to hotwire a resistor between reset and 3.3v. Everything works great like that. When I need to reprogram the arduino I can just unplug the resistor, upload, plug it back in.
Well now I have this device stuck in a closet. I have remote access to the PC its attached to. I can do my sketch updates but then.... I cant upload it because the resistor is in.
So I wonder if anybody has found a solution to the original problem or has a fancy idea for a workaround here.
Some background:

Automatic (Software) Reset

Rather than requiring a physical press of the reset button before an upload, the Arduino Uno is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the ATmega8U2 is connected to the reset line of the ATmega328 via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the lowering of DTR can be well-coordinated with the start of the upload.

This setup has other implications. When the Uno is connected to either a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second or so, the bootloader is running on the Uno. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened. If a sketch running on the board receives one-time configuration or other data when it first starts, make sure that the software with which it communicates waits a second after opening the connection and before sending this data.

The Uno contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details.

from here http://www.nkcelectronics.com/arduino-diecimila.html

and
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1213719666/all

I dont why I missed it before but it seems if I can just tell PHP to wait before requesting data it may work without the resistor.

Im going to try that but any other ideas welcome.

This is brilliant idea.

Can you please post some more details. I think it is great to be able to remotely upload sketches to arduinos..

Idea: you can use a relay to open/close the circuit with resistor in software manner.

well that failed.

      $serial->deviceOpen();
        sleep(10);
      $serial->deviceOpen();
      $serial->sendMessage(chr(10)); // start transmission
      $serial->sendMessage(chr(54));
      $serial->sendMessage(chr(13)); // end transmission
      $read = $serial->readPort(); // waiting for reply

Just making PHP sleep after sending the device open command to serial doesn't seem to be working.

      $serial->deviceOpen();
        sleep(10);
      $serial->deviceOpen();

Why are you opening the port twice? Each one causes a reset.

sorry that was a bad cut and paste. Im not useing the sleep anymore and then copied to much. I only had the first serial open.

       $serial->deviceOpen();
          sleep(10);
      $serial->sendMessage(chr(10)); // start transmission
      $serial->sendMessage(chr(54));
      $serial->sendMessage(chr(13)); // end transmission
      $read = $serial->readPort(); // waiting for reply

Couldn't you add like a kind of handshaking transmission of a couple bytes, wait and parse a valid reply, then start your transmission? Am I even understanding your problem right, when you connect to your arduino with PHP on the unix system, it automatically resets it and you are losing data? If not, could you explain a little more?