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 1, 2, 3  Nästa
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Tomas59



Medlem i: 849 dagar

Status: Offline



#741021
Inlägg Skrivet: 2016-09-25 01:38      Ämne: info från web profil till php Citera

Hejsan. Jag är en novis PHP missbrukare :)
Jag har kliat mig i huvudet och läst igenom artiklar till och med -09
Till mitt dilemma. Jag försöker läsa in från en personlig profil och
vill hämta Namn och profil bild
Jag har studerat de förlag som ser ut att stämma överens med det jag söker.
[url]http://www.phpportalen.net/viewtopic.php?t=110624[/url]
[url]http://www.phpportalen.net/viewtopic.php?t=110429&sid=2fd276717efa8d2172068bad38274d0b[/url]
[url]http://www.phpportalen.net/viewtopic.php?t=115611[/url]
Ett dilemma jag har är att jag inte kan använda mig av "\" På den platsen jag förfogar över mina php scripter.
Bild url Namnet hittar jag efter denna sträng
[quote] <img id="ctl00_oCPH1_imgPicture" class="scaled160" src="/net/usermedia/mediafile.ashx?iid=24126318&amp;sz=0" alt="Namn" /> [/quote]
"/net/usermedia/mediafile.ashx?iid=24126318&amp;sz=0" är bilden och alt="Namn" är namnet
Någon som vill och kan hjälpa mig med att hur jag söker strängen och plockar ut till $bild och $Namn?
Min engelska är inte kvalifiserad för att söka igenom hur olika funktioner fungerar. Det blir bara en sörja i i huvudet :).

Tack på förhand
Tomas
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Emerald



Medlem i: 4738 dagar

Status: Offline



#741023
Inlägg Skrivet: 2016-09-25 02:42      Ämne: Citera

Jag kan inte ge dig en helhetslösning, men en knuff i rätt riktning. Med denna regex får du ut adressen samt namnet:

https://regex101.com/r/mX7cM9/1

Använd det med t.ex. preg_match:
http://php.net/manual/en/function.preg-match.php

Du får då ut adressen som $variabel[1] samt namnet som $variabel[2].

Så kan du läsa på lite om file_get_contents om du ska läsa in en källkod någonstans ifrån:
http://php.net/manual/en/function.file-get-contents.php
http://www.w3schools.com/php/func_filesystem_file_get_contents.asp

Någon annan kanske bjuder på lösning med script, men där har du allt som du ska behöva.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



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



#741025
Inlägg Skrivet: 2016-09-25 14:08      Ämne: Citera

Att inte kunna använda backslash (\) låter som ett ganska stort handikap. Om du själv har möjlighet att modifiera de skript som sätter upp den begränsningen så är det ett problem som borde gå att lösa.

Annars är de vanligaste förekomsterna av backslash i strängar, och då kan man använda alternativa lösningar för att få in dessa där. Backslash har teckennummer 92:
PHP:
1:
 $str "The string ends in backslash: ".chr(92);
2:
$str sprintf("The string ends in backslash: %c"92);
3:
$BS chr(92);
4:
$str "The string ends in backslash: $BS";
5:
 
6:
 
 

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



Medlem i: 849 dagar

Status: Offline



#741026
Inlägg Skrivet: 2016-09-25 15:06      Ämne: Citera

Myrorna har samlats igen efter en god sömn Smile
Jag försöker med denna unika sräng på sidan
[b]<img id="ctl00_oCPH1_imgPicture" class="scaled160" src="/net/usermedia/mediafile.ashx?iid=24126318&amp;sz=0" alt="Namn" />[/b]

[color=red]
$source = file_get_contents("http://www.utherverse.com/net/profile/view_profile.aspx?MemberID=100321174");
preg_match("ctl00_oCPH1_imgPicture", $source, $match);
$num = $match[0];
echo $num
[/color]
-----------------------------------------
Angående backslach
Förstår inte riktigt hur jag gör i detta fall. Kanske du bjuder på en mer ingående?
[b]$str = "<img id=\"ctl00_oCPH1_imgPicture\" class=\"scaled160\" src=\"/net/usermedia/mediafile.ashx?iid=24126318&amp;sz=0\" alt=\"Namn\" />";[/b]

I Java så fick jag veta att man använder " innanför ' istället. fungerar inte det i php åxå?
vet inte varför dom skalar bort \ men gör man 2 st \\ så sparas en iaf. Men det suger när man ska editera den på plats.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



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



#741028
Inlägg Skrivet: 2016-09-25 16:46      Ämne: Citera

Om du omsluter strängen med apostrofer (') kan du ha citattecken (") i strängen, utan att använda backslash, och vice versa.
Om det inte är en passande lösning så kan du använda tipsen jag gav förut angående backslash också för citattecken. Citattecken har teckennummer 34.


Anledningen till att ensamma backslash rensas bort, och dubbla blir till en, är troligtvis att skriptet du använder för att uppdatera koden har en korrigering för magic_quotes_gpc. Eftersom magic_quotes_gpc inte längre används så förstör den korrigeringsfunktionen istället texten du uppdaterar.
 

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



Medlem i: 849 dagar

Status: Offline



#741030
Inlägg Skrivet: 2016-09-25 17:49      Ämne: Citera

Tack känner mig säkrare med (') och (") samt (\)
Verkar enklast att använda första förslaget iaf.
Om jag inte listat det fel så brukar det alltså användas backslash framför ett " typ så här( \" )
Tar iaf med mig detta i minnesbanken ifall man måste använda detta. Det är min privder (tror jag det heter) som skalar bort \ backslash för mig. Så inget jag kan påverka själv förutom med dessa tips för att komma förbi detta.
Jag klurar vidare med mitt dilemma som vägrar fungera
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



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



#741031
Inlägg Skrivet: 2016-09-26 03:43      Ämne: Citera

I normalfallet så brukar den här typen av bortskalning av backslash ligga i kod som du kan påverka själv. Har du eget konto hos webbhotellet (eller hur du nu har löst det) så borde det inte vara något omöjligt. Men om du bara har tillgång till webbhotellet i andra hand så kan det kanske vara lite knepigare.
Men skall jag hjälpa dig mer med den saken så behöver jag veta mer om vilken utrustning du använder för att redigera php-koden. Jag antar att det är frågan om ett webbgränssnitt.

Ett av de bästa sätten att plocka ut data ur ett html-dokument är att ta hjälp av DOM.
http://se1.php.net/manual/en/domdocument.loadhtml.php
Då kan du använda funktioner som getElementById och getAttribute för att fiska fram datat.
Det finns en del exempelkod i manualen jag länkade till, där man kan se hur detta görs
 

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



Medlem i: 849 dagar

Status: Offline



#741033
Inlägg Skrivet: 2016-09-26 04:19      Ämne: Citera

Jag har ett begränsat utrymme på 100 mb på http://www.sweb.cz/
har inte tillgång till MySQL-databas då jag har ett gratis konto.
Jag använder mig enklast av den inbyggda editorn där.
Jag har inte installerat något på min dator då det känns lite överkurs för mig då jag bara gör några små skripter och har utrymme för till mina användbara .swf filer där.
Jag börjar med

I denna sträng hittar jag url till bild och namn
<img id="ctl00_oCPH1_imgPicture" class="scaled160" src="URL_TILL_PROFIL_BILD_HÄR" alt="ETT_NAMN_HÄR" />
Den är unik på sidan enligt källkoden man kan läsa i webläsaren.
Detta är vad jag lyckats åstakomma, men grubblar över hur får jag ut restrerande efter ctl00_oCPH1_imgPicture till en variabel?
$subject = file_get_html('http://www.utherverse.com/Net/profile/view_profile.aspx?MemberId=100429785');
$pattern = '"ctl00_oCPH1_imgPicture"';
preg_match($pattern, $subject, $matches);
print_r($matches)
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



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



#741034
Inlägg Skrivet: 2016-09-26 13:06      Ämne: Citera

Har du tittat på DOM?
Du kan ladda in sidans html-kod, som då omvandlas till en datastruktrur.
Sedan kan du välja elementet med id "ctl00_oCPH1_imgPicture"
och sedan läsa av attributen src och alt.

PHP:
1:
 $dom = new DOMDocument();
2:
@$dom->loadHTML($fileData);
3:
$img $dom->getElementById('ctl00_oCPH1_imgPicture');
4:
$bild $img->getAttribute('src');
5:
$namn $img->getAttribute('alt'); 

Om du använder DOM så blir behovet av att använda backslash ytterst begränsat, och risken att av misstag hitta fel data i dokumentet minskar.
Å andra sidan är det väldigt bra att lära sig att använda reguljära uttryck, men i just det här fallet finns det bättre lösningar.

EDIT:

Det finns en funktion som heter $dom->loadHTMLFile($filename); som kanske är en bättre lösning i just det fallet du beskriver.

Senast ändrad av harald_b den 2016-09-26 13:20, ändrad totalt 1 gång
 

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



Medlem i: 849 dagar

Status: Offline



#741035
Inlägg Skrivet: 2016-09-26 13:19      Ämne: Citera

Alla vägar bär till Rom tydligen. Ska jag lägga ner det jag va inne på tidigare och gå över till detta istället?
Hur blir det med " kommer dom med i Namn och bild?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



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



#741036
Inlägg Skrivet: 2016-09-26 13:23      Ämne: Citera

Fortsätt gärna att sätta dig in i reguljära uttryck, men kanske inte till just det här.
När du använder den här typen av högnivåverktyg så är det normala att eventuella omslutande citattecken inte räknas som en del av datat, och kommer därför inte finnas med i $namn och $bild
 

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



Medlem i: 849 dagar

Status: Offline



#741038
Inlägg Skrivet: 2016-09-27 02:14      Ämne: Citera

Hmm trodde mig att det skulle vara så enkelt.
Känner mig verkligen BLOND just nu.
Vad gör jag för fel?
Fatal error: Call to undefined function file_get_html()
Har provat med en del andra vägar att läsa in url på åxå
<?php
$fileData = 'http://www.utherverse.com/net/profile/view_profile.aspx?MemberID=100321174';
$dom = new DOMDocument();
$dom->loadHTMLFile($fileData);
$img = $dom->getElementById('"ctl00_oCPH1_imgPicture"');
$bild = $img->getAttribute('src');
$namn = $img->getAttribute('alt');

echo $bild ."bild<br>";
echo $namn ."namn<br>";
?>
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



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



#741039
Inlägg Skrivet: 2016-09-27 02:55      Ämne: Citera

file_get_html() är ingen standardfunktion i php. Men jag kan inte se att du har med den i kod längre heller.
Url:en läser du in med $dom->loadHTMLFile().
 

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



Medlem i: 849 dagar

Status: Offline



#741040
Inlägg Skrivet: 2016-09-27 04:11      Ämne: Citera

Tydligen något gammalt som spökade detta får jag ca:150 rader av Kommer från
$dom->loadHTMLFile($fileData); . Börjat använda mig av phpDesigner nu.


Warning: DOMDocument::loadHTMLFile(): Unexpected end tag : param
Warning: DOMDocument::loadHTMLFile(): htmlParseEntityRef: expecting ';'
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
harald_b
Moderator



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



#741041
Inlägg Skrivet: 2016-09-27 10:32      Ämne: Citera

De varningar du får beror på att html-dokumentet inte är helt perfekt utformat.
Det är antagligen inget du kan påverka,
En enkel lösning är att stänga av felmeddelanden för just inläsningen av html-dokumentet. Det gör man genom att lägga till ett snabel-a (@) före funktionsanropet:
PHP:
1:
 @$dom->loadHTMLFile($fileData); 


Du kan också använda dig av egen felhantering istället:
PHP:
1:
 libxml_use_internal_errors(true);
2:
$dom = new DOMDocument;
3:
 
4:
if (!$dom->loadHTMLFile($fileData)) {
5:
    foreach (libxml_get_errors() as $error) {
6:
        // hantera felen här
7:
    }
8:
 
9:
    libxml_clear_errors();
10:
 

_________________
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 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