PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

02-10-2007, 16:00
|
rossixx
Registrierter Benutzer
|
|
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 514
|
|
skript in einem anderem skript starten
Besteht die Möglichkeit in einem PHP-Skript ein anderes auf einem anderem Host zu starten.
z.B.
Skriptaufruf ausgabe:
externes skript gestartet
wert ist 1234
ende
|

02-10-2007, 16:05
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.727
|
|
kannst du das mal genauer erklären?
gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

02-10-2007, 16:08
|
3DMax
PHP Senior
|
|
Registriert seit: Jan 2004
Beiträge: 1.916
|
|
Zitat:
Original geschrieben von Kropff
kannst du das mal genauer erklären?
|
was ist daran so unverständlich?
@rossixx
z.b. mit file_get_contents() / allow_url_fopen muss dabei an sein
oder auch fsockopen()
|

02-10-2007, 17:25
|
rossixx
Registrierter Benutzer
|
|
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 514
|
|
Also genauer :
ich starte ein skript aaa.php ,
dieses soll auf einem anderen server ein skript bbb.php starten
das schreibt ein ergebnis in eine datei ddd.txt
die lese ich aaa.php aus.
das auslesen auf entfernten rechnern mache ich per curl.
aber wie bringe ich das entfernte skript zum laufen ?????
|

02-10-2007, 17:29
|
arkos
PHP Senior
|
|
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
|
|
mal davon ausgehend, dass alles seine legale richtigkeit hat...
du könntest, wenn du es nur starten willst, die url in einem 1x1-pixel iframe öffnen.... so als dirty lösung
__________________
**********
arkos
**********
|

02-10-2007, 17:39
|
rossixx
Registrierter Benutzer
|
|
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 514
|
|
Über include oder über fsockopen geht nicht, weil
allow_url_fopen is Off
somit wird dein vorschlag wahrscheinlich auch nicht funktionieren, aber ich versuchs gleich mal.
Eigentlich müßte ich ja nur einen LINK ausführen, der könnte das skript starten und parameter könnte der auch übergeben.
Freiwillige vor
|

02-10-2007, 17:49
|
3DMax
PHP Senior
|
|
Registriert seit: Jan 2004
Beiträge: 1.916
|
|
Zitat:
Original geschrieben von rossixx
Eigentlich müßte ich ja nur einen LINK ausführen, der könnte das skript starten und parameter könnte der auch übergeben.
|
du sagst es.
aber wenn du sowieso schon curl benutzt, warum denn nicht damit?
|

02-10-2007, 17:51
|
rossixx
Registrierter Benutzer
|
|
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 514
|
|
doofe Frage
Mit welcher CURL-Function kann man denn ein Skript starten ???
|

02-10-2007, 18:07
|
rossixx
Registrierter Benutzer
|
|
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 514
|
|
Die Lösung
PHP-Code:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://mein-server.net/test.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
gefunden hier :
http://de3.php.net/manual/de/function.curl-exec.php
|

02-10-2007, 18:10
|
3DMax
PHP Senior
|
|
Registriert seit: Jan 2004
Beiträge: 1.916
|
|
Re: doofe Frage
Zitat:
Original geschrieben von rossixx
Mit welcher CURL-Function kann man denn ein Skript starten ???
|
indirekt startet man ein php-script, indem man es über die entsprechende url vom entfernten webserver anfordert.
und wie man mit curl_exec eine webseite aufruft, weißt du?!
alternative ist nach wie vor fsockopen oder auch per shell_exec wget anstoßen, da gibt es echt zig möglichkeiten.
|

05-10-2007, 19:18
|
rossixx
Registrierter Benutzer
|
|
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 514
|
|
[gelöst] die Lösung
nicht die Beste, aber tut seine Zwecke...
dem skript übergibt man in der konsole oder per nagios einen host und einen check-wert
PHP-Code:
#!/usr/bin/php
<?php
$url = $_SERVER['argv'][1];
$check = $_SERVER['argv'][2];
$host = $_SERVER['argv'][3];
$url = $host ;
$ch = curl_init() ;
curl_setopt($ch, CURLOPT_URL, "http://meinserver.net/test.php?host=$host&check=$check") ;
curl_setopt($ch, CURLOPT_HEADER, 0) ;
$res = curl_exec($ch) ;
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch) ;
curl_close($ch) ;
$res = trim( str_replace (array("\n", "<br>", "<br />" ),array('','',''), $res )) ;
$check_x = 0 ;
if ( $res == $check_x ) {
echo "HTTP OK : alles OK r= $res \n" ;
exit (0) ;
}
elseif ( $res == 1 ) {
echo "HTTP WARNING : nicht alles OK r=$res \n" ;
exit (1) ;
}
?>
und dieses skript gibt es an das folgende weiter, welches auf einen anderen server liegt und von da aus einen server testet.
PHP-Code:
<?php
if ($host==0)$host = $_GET['host'] ;
if ($check==0)$check = $_GET['check'];
$ch = curl_init($host);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
if (curl_errno($ch) !=0){
$err = "fehler";
}
else{
$err = "super";
}
curl_close($ch);
$res = trim(str_replace(array("\n", "<br>", "<br />"), array('', '', ''), $res));
if ($res != $check) {
//echo "HTTP CRITICAL: nicht alles OOOOOOOK c=$check h=$host DREI=$err r=$res \n";
echo "1";
exit (1);
}
else {
//echo "HTTP OK: alles ok\n";
echo "0" ;
exit (0) ;
}
?>
|

05-10-2007, 19:58
|
tontechniker
PHP Senior
|
|
Registriert seit: Jul 2005
Beiträge: 1.972
|
|
Eigentlich brauchst du die Query nicht zweimal ausführen ( curl_setopt und dann curl_exec reicht) - ansonsten:
Code:
// Ein leerer String reicht aus:
$res = trim( str_replace (array("\n", "<br>", "<br />" ),'', $res )) ;
$check_x = 0 ; // Debugging Überbleibsel?
if ( $res == $check_x ) {
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|