Hallo Gemeinde,
ich habe ein kleines Problem, folgende Ausgangssituation:
Firmenseite liegt auf einen Server beim Hoster, auf dieser Seite haben wir uns von der Agentur ein Leistungsverzeichnis in Typo3 stricken lassen. Nun stellt sich mir die Aufgabe, das wir dieses Leistungsverzeichnis auch im Intranet zur Verfügung haben. Da ich aber nur die reine funktion haben möchte und nicht das Layout habe ich an PHP gedacht. Ich habe es mit folgenden code versucht:
<?
$datei_inhalt = file_get_contents(http://www.XXX.de/Leistungsverzeichnis.leistungsverzeichnis.0.html)
$pos1 = strpos($datei_inhalt,"Alphabetisches") + strlen("Alphabetisches");
$pos2 = strpos($datei_inhalt,"nächste Seite ") - strlen("nächste Seite ");
echo substr($datei_inhalt,$pos1,$pos2-$pos1)
?>
Jedoch bekomme ich dann folgenden Fehler:
Parse error: parse error, unexpected ':' in /var/www/typo3conf/ext/page_php_content/pi1/class.tx_pagephpcontent_pi1.php(55) : eval()'d code on line 2
Hat jemand vieleicht eine Idee wie ich das anders machen könnte, bzw mit welchen Vorschlag in der Agentur kommen könnte das Sie es irgendwie machtbar machen könnten.
Ich danke für jede hilfe.
Viele Grüße T
sollte das nicht heißen:
$datei_inhalt = file_get_contents( "http://www.XXX.de/Leistungsverzeichnis.leistungsverzeichnis.0.html");
?
georg
just2b schrieb
sollte das nicht heißen:
$datei_inhalt = file_get_contents( "http://www.XXX.de/Leistungsverzeichnis.leistungsverzeichnis.0.html");
?
georg
EiEiEi,
das war natürlich ein fehler das stimmt, aber irgendwas geht trotzdem nicht weil er nichts ausgibt. Fällt Dir noch etwas auf?
Gruß T
nicht mit echo sondern, da ich grad nicht weiß was stimmt entweder
return $content;
oder
$content;
am ende
georg
Hallo,
irgendwie geht es nicht, dass sind jetzt die beiden die ich versucht habe:
<?
$datei_inhalt = file_get_contents("http://www.XXX.de/Leistungsverzeichnis.leistungsverzeichnis.0.html");
$pos1 = strpos($datei_inhalt,"Alphabetisches") + strlen("Alphabetisches");
$pos2 = strpos($datei_inhalt,"nächste Seite ") - strlen("nächste Seite ");
$content; substr($datei_inhalt,$pos1,$pos2-$pos1)
?>
<?
$datei_inhalt = file_get_contents("http://www.XXX.de/Leistungsverzeichnis.leistungsverzeichnis.0.html");
$pos1 = strpos($datei_inhalt,"Alphabetisches") + strlen("Alphabetisches");
$pos2 = strpos($datei_inhalt,"nächste Seite ") - strlen("nächste Seite ");
return $content; substr($datei_inhalt,$pos1,$pos2-$pos1)
?>
Aber kommt nichts außer ne weiße Seite, die pos angaben sind richtig definiert? oder habe ich da zu einfach gedacht?
Viele Grüße T
$content= substr($datei_inhalt,$pos1,$pos2-$pos1);
oder
return $content= substr($datei_inhalt,$pos1,$pos2-$pos1);
just2b schrieb
$content= substr($datei_inhalt,$pos1,$pos2-$pos1);
oder
return $content= substr($datei_inhalt,$pos1,$pos2-$pos1);
Leider immernoch alles weiß, da kann man ja fast verrückt werden. Ich schäme mich schon fast zu fragen ob du noch ne Idee hast.
Gruß T
Wenn du nur $datei_inhalt zurückgibst funktioniert es?
Falls ja, lass dir mal $pos1 und $pos2 ausgeben, wird wohl an einer der beiden Variablen liegen.
Also der code an sich scheint schonmal das zu tun was er soll, wenn ich nicht die richtige Adresse angebe kommt folgendes:
Wenn ich:
,$pos1,$pos2-$pos1
raus nehme kommt folgende meldung:
Warning: Wrong parameter count for substr() in /var/www/typo3conf/ext/page_php_content/pi1/class.tx_pagephpcontent_pi1.php(55) : eval()'d code on line 5
nja, lasst das im substr() schon stehen, aber probier mal folgenden Code nach $pos2 = strpos($datei_inhalt,"nächste Seite ") - strlen("nächste Seite ");:
echo '$pos1:';
var_dump($pos1);
echo '<br>$pos2:';
var_dump($pos2);
Dann sollte er dir Typ und Wert von pos1 und pos2 ausgeben 🙂
Also auf der Seite steht dann folgendes:
$pos1:int(25442)
$pos2:int(-14)
Was kann ich damit anfangen, bzw was kannst du damit anfangen?
Gruß T
Naja, nachdem $pos2 den Wert -14 hat, heißt das, dass "nächste Seite " im Script nicht gefunden wird.
Und das resultierende substring($datei_inhalt,25442,-25456) wird wahrscheinlich einen leeren String zurückgeben, es sei denn deine Datei hat mehr als 50898 Zeichen.
Überprüf mal ob "nächste Seite " in deiner Datei wirklich vorkommt, oder es nicht evtl. anders geschrieben wird (zB "n& auml;chste Seite " [ohne abstand nach dem &]) oder ein Whitespace nicht passt
Habe das mal kontrolliert und war tatsächlich was verkehrt, aber mehr als die Dateen:
$pos1:int(25264)
$pos2:int(43714)
kommt trotzdem nichts. Sehr verflixte kiste irgendwie.
wie schaut deine funktion jetzt aus? bzw. ist es eine Funktion?
Lass dir mal das ergebnis von substr ausgeben:
echo htmlspecialchars(substr($datei_inhalt,$pos1,$pos2-$pos1));
Hallo,
da steht ne ganze ganze menge, ich Poste mal einen Teil:
Content of extension "lv_leistungsverzeichnis", plugin "tx_lvleistungsverzeichnis_pi1" --> <div class="tx-lvleistungsverzeichnis-pi1"> <P class="headline" >Alphabetisches Leistungsverzeichnis</P> <form ACTION="Leistungsverzeichnis.leistungsverzeichnis.0.html" METHOD="POST"> <INPUT TYPE="HIDDEN" NAME="tx_lvleistungsverzeichnis_pi1[action]" VALUE="suche"><INPUT TYPE="HIDDEN" NAME="tx_lvleistungsverzeichnis_pi1[operation]" VALUE="and"> Geben Sie einen oder mehrere Suchbegriffe ein: <br> <input NAME="tx_lvleistungsverzeichnis_pi1[searchstring]" VALUE=""> <input TYPE="submit" VALUE="Suche" class="sucheButton"><br> Suche in:<br> <INPUT TYPE="checkbox" NAME="tx_lvleistungsverzeichnis_pi1[scope][leistungen]" checked>Analysen <INPUT TYPE="checkbox" NAME="tx_lvleistungsverzeichnis_pi1[scope][indikationen]" checked>Indikationen </form> Oder recherchieren Sie in unserer alphabetischen Liste.<BR> Klicken Sie dazu einfach auf den gewünschten Buchstaben: <P><SPAN class="link"> <img src="fileadmin/template/Icons/blank.gif" border="0" width="1" height="7"><BR> <a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=0">A </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=9">B </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=12">C </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=25">D </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=29">E </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=34">F </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=40">G </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=43">H </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=50">I </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=54">K </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=58">L </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=63">M </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=64">N </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=65">P </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=75">R </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=77">S </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=78">T </a><a href="Leistungsverzeichnis.leistungsverzeichnis.0.html?&tx_lvleistungsverzeichnis_pi1[action]=liste&tx_lvleistungsverzeichnis_pi1[offset]=89">V </a><a
Also abrufen scheint er ja was, aber es kommt nichts auf die Seite.
Viele Grüße T
Tja dann muss es an deiner Funktion bzw. dem Rückgabewert liegen.
Wie schaut deine Funktion jetzt aus? bzw. wie wird sie verwendet?
Shocker schrieb
Tja dann muss es an deiner Funktion bzw. dem Rückgabewert liegen.
Wie schaut deine Funktion jetzt aus? bzw. wie wird sie verwendet?
Also momentan sieht sie so aus:
<?
$datei_inhalt = file_get_contents("http://www.xxx.de/Leistungsverzeichnis.leistungsverzeichnis.0.html");
$pos1 = strpos($datei_inhalt,"BEGIN:") + strlen("BEGIN:");
$pos2 = strpos($datei_inhalt,"<!-- END") - strlen("<!-- END");
echo '$pos1:';
var_dump($pos1);
echo '<br>$pos2:';
var_dump($pos2);
echo htmlspecialchars(substr($datei_inhalt,$pos1,$pos2-$pos1));
return $content= substr($datei_inhalt,$pos1,$pos2-$pos1);
?>
Und wird über eine Seitenelement PHP angelegt. Eine PHPinfo zB funktioniert ohne Probleme. Ich kann mir das wirklich nicht erklären irgendwie.
Gruß T
Seitenelement PHP?
Ich kenn mich ehrlich gesagt nicht sonderlich mir Typo3 aus, dafür mit PHP.
Wenn dein geposteter Code eine Funktion ist, würde das hier reichen, obwohl es trotz Variablenzuweisung auch funktioniert:
return substr($datei_inhalt,$pos1,$pos2-$pos1);
Wenn es keine Funktion ist (zumindest sehe ich nirgendwo ein "function"), ist das return wahrscheinlich fehl am Platz.
Leider sagt mir Seitenelement PHP nichts, ich weiß leider nicht wie da die Werte übergeben werden müssen. Wenn ein einfaches echo reicht, kannst du ja deinen substr() mit echo ausgeben...