Help - Zoeken - Gebruikers - Kalender
Volledige versie: php
MandrivaClub.NL > Forum > Documentatie en Programmeren
sidkl301
ik zou graag via php een soort van kliksite maken voor een spel dat ik speel, gaat om criminalwar. Op de profielpagina staan dan alle namen van een familie, die namen wil ik dan uitlezen, ik dacht via curl, en deze namen moeten dan via een iframe zichtbaar en klikbaar worden. Zie als voorbeeld: http://home.deds.nl/~sidius.
doelman
Snap niet precies wat je wilt? Kun je niet gewoon de code van dat voorbeeld van de desbetreffende persoon krijgen?
sidkl301
ok even uitleg:

er is een profielpagina, hierop staan 75 leden van een familie.
ik zou dan via php de namen er uit willen filteren en deze via iframes willen plaaten op een website.
omdat de samenstelling van een familie nogal eens veranders zou dit automatisch moeten.

ik plaat normaal dus 75 van dit soort regels odner elkaar:

CODE
<iframe frameborder="1" height="150" name="klik" scrolling="no" src=http://www.criminalwar.nl/gangster/zappa></iframe>


maar zoals ik al zei, dit moet toch automatisch kunnen?
HighKing
Die pagina die je als eerste aangaf is ook van jou zeker, maar dan statische html?
Heb je ook een link naar de pagina waarop die namen staan waarover je het hebt?
sidkl301
QUOTE(HighKing @ Mar 3 2010, 08:48 PM) *
Die pagina die je als eerste aangaf is ook van jou zeker, maar dan statische html?
Heb je ook een link naar de pagina waarop die namen staan waarover je het hebt?

jawel: http://criminalwar.nl/familie/profiel/Criminal-Busters
die pagina die ik gaf is idd van mij.
HighKing
Nou, als ik die pagina op probeer te halen met wget of curl krijg ik een 403 (forbidden), dus ik vermoedt zomaar dat dergelijke tools worden geblokkeerd. Hebben ze er niet iets van een api voor? Of is het iets dat stiekum eigenlijk niet helemaal mag? wink2.gif
sidkl301
QUOTE(HighKing @ Mar 3 2010, 09:33 PM) *
Nou, als ik die pagina op probeer te halen met wget of curl krijg ik een 403 (forbidden), dus ik vermoedt zomaar dat dergelijke tools worden geblokkeerd. Hebben ze er niet iets van een api voor? Of is het iets dat stiekum eigenlijk niet helemaal mag? wink2.gif

ik weet niet, er is nog iemand die het wel kan, zie http://www.criminalwarkliksite.co.nr/ alleen die ligt er regelmatig uit.
of http://www.criminalwarkliksite.co.nr/criminal-busters

de code die hij me gaf maar die ik niet snap:

CODE
$url = "http://kliksite.iictlan.be/?familie=Criminal-Busters";
$ch = curl_init($url);
$content = curl_exec($ch);
curl_close($ch);
$newstring = substr($content, 0, -1);
echo $newstring;
HighKing
Ik ben bang dat die net zo min werkt, als ik de url uit die code open (http://kliksite.iictlan.be/?familie=Criminal-Busters) dan krijg ik ook allemaal 403's in beeld in plaats van namen. Grappig, als ik wget een andere user-agent identificatie laat meesturen krijg ik wel de pagina binnen:
CODE
$ wget --user-agent=Testkees http://criminalwar.nl/familie/profiel/Criminal-Busters

Dan is de volgende vraag, moet het specifiek php zijn? Hoe vaak wijzigt die familie van je? Dagelijks? Dan kun je het ook met een bash-scriptje vanuit crontab regelen. Je kunt wget de uitvoer naar stdout laten sturen met "-O -", zo:
CODE
$ wget -O - -q --user-agent=Testkees http://criminalwar.nl/familie/profiel/Criminal-Busters

Zo te zien hebben alle leden van jouw familie in de html-code een link naar een profielpagina, dus we kunnen 'greppen' op het woord profiel:
CODE
$ wget -O - -q --user-agent=Testkees http://criminalwar.nl/familie/profiel/Criminal-Busters | grep profiel

En zo maken we een lijsje van enkel de profiel url's zonder html:
CODE
$ wget -O - -q --user-agent=Testkees http://criminalwar.nl/familie/profiel/Criminal-Busters | grep profiel | cut -d "'" -f 2 | grep ^http


Interessant? smile.gif
sidkl301
kan ik die uitvoer van de laatste regel ook veranderen naar die iframe dingen? zodat ik de uitvoer gelijk naar index.html kan doen?
CODE
<iframe frameborder="1" height="150" name="klik" scrolling="no" src=http://www.criminalwar.nl/gangster/zappa></iframe>

dus zoiets?

HighKing
Als je die laatste regel in een variabele steekt, dat kan bijvoorbeeld zo:
gangsters=$(wget regel hierboven)

Vervolgens kun je met een for loopje doen wat jij wilt, dus bijvoorbeeld:
for url in $gangsters;
do echo "<iframe frameborder="1" height="150" name="klik" scrolling="no" src="$url"></iframe>"
done
HighKing
Nog even verder gekeken dan m'n neus lang is: Jij wilt niet de profiel url's, dus niet http://www.criminalwar.nl/profiel/naam maar http://www.criminalwar.nl/gangster/naam. Dat kun je dan weer met sed heel mooi aanpakken, dus "sed 's/profiel/gangster/g'" achter de wget regel plaatsen. smile.gif
Ik heb hier al een kant en klaar scriptje voor je, maar die krijg je lekker niet. laugh.gif
sidkl301
QUOTE(HighKing @ Mar 3 2010, 10:18 PM) *
Nog even verder gekeken dan m'n neus lang is: Jij wilt niet de profiel url's, dus niet http://www.criminalwar.nl/profiel/naam maar http://www.criminalwar.nl/gangster/naam. Dat kun je dan weer met sed heel mooi aanpakken, dus "sed 's/profiel/gangster/g'" achter de wget regel plaatsen. smile.gif
Ik heb hier al een kant en klaar scriptje voor je, maar die krijg je lekker niet. laugh.gif

ik ken sed verder niet, de loop die je noemt lijkt wel 4dos hihi, plz help me nog eens op weg....

wat voor script heb je?
ben erg benieuwd.
ben wel bekend met bash, maar komt meer uit me 4dos ervaring.
ik wil gewoon graag die dingen in een index.html zetten
wil gewoon niet afhankelijk zijn van die grapjas die dat nu doet

als ik die sed regel erachter plak krijg ik alleen een knipperende bash?
HighKing
Hehe, nou omdat ik zo lief ben:
CODE
#!/bin/bash
gangsters=$(wget -O - -q --user-agent=Testkees http://criminalwar.nl/familie/profiel/Criminal-Busters | grep profiel | cut -d "'" -f 2 | grep ^http | sed 's/profiel/gangster/g')

for url in $gangsters; do
        echo "<iframe frameborder="1" height="150" name="klik" scrolling="no" src="$url"></iframe>"
done

Dit in een tekstbestand knippen/plakken en even uitvoerbaar maken. Je zult zien, als je dit runt je de regels die jij wilt hebben als uitvoer krijgt. Met > naar een bestand sluizen en klaar is klazien.
Eventueel nog even wat html omheen echo'en, maar dat mag je toch echt zelf doen. wink2.gif
sidkl301
QUOTE(HighKing @ Mar 3 2010, 10:33 PM) *
Hehe, nou omdat ik zo lief ben:
CODE
#!/bin/bash
gangsters=$(wget -O - -q --user-agent=Testkees http://criminalwar.nl/familie/profiel/Criminal-Busters | grep profiel | cut -d "'" -f 2 | grep ^http | sed 's/profiel/gangster/g')

for url in $gangsters; do
        echo "<iframe frameborder="1" height="150" name="klik" scrolling="no" src="$url"></iframe>"
done

Dit in een tekstbestand knippen/plakken en even uitvoerbaar maken. Je zult zien, als je dit runt je de regels die jij wilt hebben als uitvoer krijgt. Met > naar een bestand sluizen en klaar is klazien.
Eventueel nog even wat html omheen echo'en, maar dat mag je toch echt zelf doen. wink2.gif


ok dat heb ik.
zou ik in dit script dit automatisch al kunnen doen?
dus beginnen na bin/bash met:
CODE
echo dit is de pagina van..... > index.html

gangsters=$(wget -O - -q --user-agent=Testkees http://criminalwar.nl/familie/profiel/Criminal-Busters | grep profiel | cut -d "'" -f 2 | grep ^http | sed 's/profiel/gangster/g')

for url in $gangsters; do
        echo "<iframe frameborder="1" height="150" name="klik" scrolling="no" src="$url"></iframe>" >> index.html
done


en dan die dubbele >> is voor toevoegen dan toch?
en dan na done kan ik nog echo dank je wel tikken?

HighKing
Heel goed, heel goed. icon_idea.gif
sidkl301
QUOTE(HighKing @ Mar 3 2010, 10:46 PM) *
Heel goed, heel goed. icon_idea.gif

hihi
hij werkt pefect!!!!!!
nog verder perfectioneren?
kan ik hem op de een of andere manier automatisch laten uploaden?
of gaat dat te ver?
bv eens per dag ofzo?
verder werkt t perfect,
kijk maar eens op die pagina ( hiero )
doelman
Tsja je kunt een cronjob maken die hem automatisch upload. Moet je wel even uitzoeken of en hoe je met een ftp commando kunt uploaden.
sidkl301
QUOTE(doelman @ Mar 3 2010, 11:22 PM) *
Tsja je kunt een cronjob maken die hem automatisch upload. Moet je wel even uitzoeken of en hoe je met een ftp commando kunt uploaden.

hoe werkt een cronjob?
doelman
QUOTE(sidkl301 @ Mar 4 2010, 12:41 AM) *
hoe werkt een cronjob?

Dat kun je toch prima op het internet opzoeken? Is genoeg info over te vinden hoor. Als je er dan nog niet uitkomt kun je het altijd hier vragen!
HighKing
Kun je bij de hoster geen cronjobs aanmaken? Dan hoef je ook niets te uploaden.
Ben wel met doelman eens dat je dat toch echt zelf even moet zoeken want daar is echt ontzettend veel over te vinden.
sidkl301
QUOTE(HighKing @ Mar 4 2010, 07:32 AM) *
Kun je bij de hoster geen cronjobs aanmaken? Dan hoef je ook niets te uploaden.
Ben wel met doelman eens dat je dat toch echt zelf even moet zoeken want daar is echt ontzettend veel over te vinden.


cronjob zal wel lukken.
ik probeer via een script om in te loggen op de ftp, maar dat wil nog niet zo lukken.

CODE
#!/bin/bash
ftp ftp.deds.nl
USER "sidius" "wachtwoord"
put /home/michelnolsen/index.html
close


ik blijf dan hangen bij de inlog....
wat doe ik fout?
kan ik vanuit dit script mijn anders script gewoon aanroepen?
gewoon met
CODE
/home/michelnolsen/anderscript
?

en nog een andere vraag of mijn eerste script, kan ik op de een of andere manier een ander bestand "echo-en" naar die index.html?
in dos was dat
CODE
type anderbestand >> index.html

ik hoef dan niet steeds in mijn script te editen als ik wat aan wil passen aan de klikstie.....
-edit-
heb dat gedeelte voor elkaar...
CODE
#!/bin/bash
cat /home/michelnolsen/criminalwar/begin > /home/michelnolsen/criminalwar/index.html

gangsters=$(wget -O - -q --user-agent=Testkees http://criminalwar.nl/familie/profiel/Criminal-Busters | grep profiel | cut -d "'" -f 2 | grep ^http | sed 's/profiel/gangster/g')

for url in $gangsters; do
        echo "<iframe frameborder="1" height="150" name="klik" scrolling="no" src="$url"></iframe>" >> /home/michelnolsen/criminalwar/index.html
done

cat /home/michelnolsen/criminalwar/eind >> /home/michelnolsen/criminalwar/index.html
sidkl301
zie tekst hieronder..........
sidkl301
de beheerder van dw website had de code aangepast, heeft iets met ajax van doen, dus oude script werkte niet goed, heb het ondertussen voor elkaar, op zich werkt hij nu wel, alleen grept hij in het begin 5 regels te veel, zou deze graag verwijderen.................
..
..
andere vraag
als je de pagina oproept krijg je allemaal venster waarbij je ok moet klikken.
hoe kan ik dit automatiscg laten gebeuren, via een form ofzo?
Dit is een "Print" versie van onze forums. Om de volledige versie met meer informatie, afbeeldingen en opmaakte bekijken, a.u.b. klik hier.