info från web profil till php

PHPportalen Forum Index » PHP Mjukstart
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget Gå till sida Föregående  1, 2, 3  Nästa
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Tomas59



Medlem i: 1005 dagar

Status: Offline



#741044
Inlägg Skrivet: 2016-09-27 17:36      Ämne: Citera

Ser inte ut som om jag kommer någonstans ståt fortfarande still på ruta 1 känns det som.
Funderar på att lägga ner istället då jag inte ser någon logik.
Vet inte hur många sidor jag har besökt de senaste dagarna om tips.
Provade på denna sida då det skrivs på svenska här.
Kanske ska ge mig på någon Amerikansk sida och använda google translator istället,
då vi svenskar hellre stjälper istället för hjälper.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4754 dagar
Från: Tavesta
Status: Offline



#741045
Inlägget är accepterad som det rätta svaret Skrivet: 2016-09-27 20:15      Ämne: Citera

Vad är det som gått galet? Du såg ju ut att vara nästan iland med det här i ditt föregående inlägg.
Det enda felet jag ser är att du inte riktigt fått till det när du kör $img = $dom->getElementById('ctl00_oCPH1_imgPicture');
Det skall inte vara både apostrofer och citattecken runt id:t.
Titta noga hur jag visade här.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Tomas59



Medlem i: 1005 dagar

Status: Offline



#741047
Inlägg Skrivet: 2016-09-27 23:08      Ämne: Citera

Hmm tackar jag snöade in på '" "' så " komm med åxå

Trodde att jag va helt ute och seglade.
Finns något som man kan göra för att speeda upp skripten?
Ex dyka in 200 bytes eller mer. När skripten har hittat imgpicture avbryts sökningen eller ska man göra en "break"?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4754 dagar
Från: Tavesta
Status: Offline



#741049
Inlägg Skrivet: 2016-09-27 23:52      Ämne: Citera

Vill du efektivisera så skulle jag tro du uppnår störst vinst genom att spara $namn och $bild på servern, så du inte behöver ladda hem och parsa filen från den externa webbservern varje gång.
Nu skrev du att du inte hade tillgång till mysql-databas, och jag antar att du inte har tillgång till någon annan heller, så möjligheten som återstår är att spara i fil.
Enklaste lösningen är att låta memberId vara en del av filnamnet, och låta $bild och $namn vara en del av filinnehållet
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Tomas59



Medlem i: 1005 dagar

Status: Offline



#741051
Inlägg Skrivet: 2016-09-28 00:18      Ämne: Citera

Får klura ut det senare men verkar smartast att göra så åxå
fast då då kanske jag måste göra en script som gör update åxå Smile
En del får för sig att byta bild ibland. Men det blir ett senare projekt. Ska vidareutveckla denna först och få till det med komandon från url strängen först. Jätte tack för din hjälp så länge. Jag kommer säkert att fråga mer senare Smile
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4754 dagar
Från: Tavesta
Status: Offline



#741052
Inlägg Skrivet: 2016-09-28 00:28      Ämne: Citera

Det här går att lösa utan ett extra uppdateringsskript.

1) Kolla om filen med det sökta memberId finns.
2) Om den finns: kolla om fildatumet är tillräckligt färskt.
3) Om det är det: Hämta data ur filen.
4) I alla andra fall: Hämta data från den externa servern, och spara dessa i filen.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Tomas59



Medlem i: 1005 dagar

Status: Offline



#741057
Inlägg Skrivet: 2016-09-29 17:20      Ämne: Citera

Fungerar hyfsat bra ändå gjorde 10 iframe scr påe en annan länk. Tar inte så lång tid.

Men en annan fråga angående detta

$img = $dom->getElementById('ctl00_oCPH1_imgPicture');
$bild = $img->getAttribute('src');
$namn = $img->getAttribute('alt');

Kan jag efter detta forsätta i samma dom och söka efter något annat typ så här
$dom->getElementById('ctl00_oCPH1_nogot_annat');
$about = $img->getAttribute('src');

eller måste man läsa om hela filen igen?

Sen försökte jag leta efter om getAttribute hade gjort vad den skulle med ange dessa vaiablar först i skripten.
$namn = "nn";
$name = "nn";

efter getElementById

if ($namn == $name) {
echo "Cant find ". $MEMBERID .">";
}
else{
echo '<a href="'. $fileData .'"><IMG SRC='. $bild .' WIDTH=100 HEIGHT=120>';
echo ". $namn .";
}

Men det vill sig inte om $MEMBERID inte finns på saiten.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4754 dagar
Från: Tavesta
Status: Offline



#741060
Inlägg Skrivet: 2016-09-29 22:43      Ämne: Citera

Du kan återanvända $dom till så många sökningar du vill.
Men när du använder $dom->getElementById(...) måste du fånga upp returvärdet varje gång, t.ex
PHP:
1:
 $img $dom->getElementById('ctl00_oCPH1_nogot_annat'); 
.

Om $MEMBERID inte finns så borde du få någon form av felmeddelandesida istället, eller en sida där uppgifter om användaren är tomma, eller något annat.
Testa i webbläsaren hur en sådan ser ut. I html-koden borde du kunna hitta något som på ett tydligt sätt skiljer en sådan från en där användaren hittats, och utifrån det skapa ett villkor för att skriva ut felmeddelande.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Tomas59



Medlem i: 1005 dagar

Status: Offline



#741062
Inlägg Skrivet: 2016-09-29 23:58      Ämne: Citera

Ok Va så jag trodde åxå om getElementById.
Ja man får en sida .../404NotFound.aspx
tänkte att $ = "" skulle hjälpa mig med det eftersom den verkar tom efter getElementById . Känns onödigt att göra 2st $dom->
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4754 dagar
Från: Tavesta
Status: Offline



#741063
Inlägg Skrivet: 2016-09-30 01:17      Ämne: Citera

Den stora kostnaden är att hämta html-sidan från den externa servern.
Att läsa ut data ur $dom är småpotatis i det här sammanhanget.

Om $dom->getElementById('ctl00_oCPH1_imgPicture') misslyckas med att hitta elementet med angivet id, så kommer returvärdet bli NULL.
Därför skulle jag gissa att $img är NULL ifall $MEMBERID inte finns.
Testa med:
PHP:
1:
 $img $dom->getElementById('ctl00_oCPH1_imgPicture'); 
2:
var_dump($img); 

Om var_dump skriver ut NULL så kan du fortsätta med
PHP:
1:
 if($img === NULL) {
2:
  //Kod ifall $MEMBERID inte finns
3:
}
4:
else {
5:
  //Kod ifall $MEMBERID  finns
6:
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Tomas59



Medlem i: 1005 dagar

Status: Offline



#741070
Inlägg Skrivet: 2016-10-01 05:15      Ämne: Citera

Strålande
Tog lite tid för mig att få in getAttribute i if {}
Men nu fungerar det. Tror nog Vi har fått med allt inom detta område nu åxå :)
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Tomas59



Medlem i: 1005 dagar

Status: Offline



#741078
Inlägg Skrivet: 2016-10-04 03:40      Ämne: Citera

En liten fråga till inom ämnet.
Har provat $data= fopen($data,'r');
Såg där att man öppnat en fil med det så bör man stänga den
med fclose($data);.
Bör man göra det med $dom = new DOMDocument();
åxå? Jag är lite petig av mig att återskapa det man buffrar även om det ät bytes.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4754 dagar
Från: Tavesta
Status: Offline



#741080
Inlägg Skrivet: 2016-10-04 11:13      Ämne: Citera

Det normala är att alla öppnade resurser stängs automatiskt när php-skriptet slutar.

Själva filresursen stängs vad jag vet automatiskt redan i samband med $dom->loadHTMLFile($filename), så den behöver inte stängas på något annat sätt.
Däremot sparas en kopia på hela filen i form av et DOMDocument-objekt i minnet, och vill man ta bort det så kan man köra
PHP:
1:
 unset($dom); 

Men det är i normalfallet betydligt mer kostsamt att läsa in en fil två gånger än att låta den ta plats i minnet under en större del av php-skriptets körningstid.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Tomas59



Medlem i: 1005 dagar

Status: Offline



#741574
Inlägg Skrivet: 2017-03-27 01:04      Ämne: Citera

Väcker upp detta igen. Nu vill man ha en $gender some finns i denna span <span id="ctl00_oCPH1_lblRSex">Female</span>
Som finns en bit ner i.. Alltså kommer efter detta.
tyvärr så hittar jag ingen logig i denna del mer än vad som jag lärt mig här. Att jag behöver göra en
getElementById('ctl00_oCPH1_lblRSex') . Vore tacksam för hjälp.

$dom = new DOMDocument;
$dom->loadHTMLFile($fileData);
$img = $dom->getElementById('ctl00_oCPH1_imgPicture');

if ($img === NULL) {
echo "<h2>Cant find ". $MEMBERID ."</h2>";
exit;
}
else {
$bild = $img->getAttribute('src');
$namn = $img->getAttribute('alt');
}
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



Medlem i: 4754 dagar
Från: Tavesta
Status: Offline



#741575
Inlägg Skrivet: 2017-03-27 11:49      Ämne: Citera

I det här fallet skall du använda ->nodeValue istället för ->getAttribute('attributnamn').
Resten blir likadan.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget Gå till sida Föregående  1, 2, 3  Nästa
PHPportalen Forum Index » PHP Mjukstart
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic