WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Behöver hjälp med enkel php. (https://www.wn.se/forum/showthread.php?t=1067456)

xciso 2016-10-20 17:46

Behöver hjälp med enkel php.
 
Tja. Jag skulle behöva hjälp med ett enkelt php script.
Jag säger enkelt, för det är enkelt..för den som kan. :)

Jag vill få en funktion att om en specifik webbsida har bilden "red.jpg"
Så ska det stå på min webbsida "Röd"

Vill även få till samma sak fast att den specifika sida innehåller ordet "hello"
Så ska det då visas på min sida "Hej"

Någon som kan hjälpa en rookie? ;)

Kay 2016-10-20 17:51

Du kan använda cURL enligt svaret på:
http://stackoverflow.com/questions/9...-in-a-web-page

Copy, paste, ändra sträng och vad den ska spotta ut.

xciso 2016-10-20 19:47

Citat:

Ursprungligen postat av Kay (Inlägg 20520520)
Du kan använda cURL enligt svaret på:
http://stackoverflow.com/questions/9...-in-a-web-page

Copy, paste, ändra sträng och vad den ska spotta ut.

Tack för snabbt svar.

jag har nu gjort så här:
Kod:

<?php
$ch = curl_init("http://www.skapamer.se/glitterfarger-6x45ml");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$text = curl_exec($ch);
$test1 = strpos($text, "1-3 vardagar");
$test2 = strpos($text, "slut hos lev");
if ($test1==true)
{
    echo "TEST 1";
}
else
{
        echo "" ;
}
if ($test2==true)
{
    echo "TEST 2";
}
else
{
        echo "" ;
}
?>

resultatet kan ni se här: http://www.bjarud.se/opencart2302/test.php

Kan jag göra det "snyggare" för else? Jag vill egentligen har flera if, men bara en else.
Som tex
If 1, echo 1
if 2, echo 2
else, inga nummer finns.

Hur gör jag det bäst?

Tanken är att jag ska ha detta för att se mina leverantörers produktsaldo.

Kruger 2016-10-20 19:55

Kod:

if ($test1){
    echo "TEST 1";
}
elseif($test2){
    echo "TEST 2";
}
else{
        echo "Error...";
}


xciso 2016-10-20 20:27

Tusen tack :)

Och nu en tilläggsfråga :)
Kod:

$text = curl_exec($ch);
$test1 = strpos($text, "1-3 vardagar");

Översta raden $text, betyder text just att det ska vara text? kan man byta detta till img tex?
Andra raden "$test1 = strpos($text", betyder "text" där att det ska vara just text?

SvanteH 2016-10-21 09:35

Citat:

Ursprungligen postat av xciso (Inlägg 20520525)
Tusen tack :)

Och nu en tilläggsfråga :)
Kod:

$text = curl_exec($ch);
$test1 = strpos($text, "1-3 vardagar");

Översta raden $text, betyder text just att det ska vara text? kan man byta detta till img tex?
Andra raden "$test1 = strpos($text", betyder "text" där att det ska vara just text?

http://php.net/manual/en/function.strpos.php

strpos är en funktion där första parametern (i ditt fall $text) är var den kommer leta i. Den kommer i ditt fall leta i källkoden som curl_exec() gav dig. Andra parametern (i ditt fall "1-3 vardagar") är vad den kommer leta i $text efter.

Värt att nämna är att strpos svarar med ett nummer så Kruger's förslag kan ge felaktiga resultat. För att kolla om inget är hittat gör du genom !== som betyder "x är INTE* falskt" * och då det finns två == betyder det att det exakt matchas. Du behöver inte veta så djupt ännu men bra att veta.

Exempel med text och "bild". Nu söker den i källkoden efter bildens url

PHP-kod:

<?php

$ch 
curl_init("http://www.skapamer.se/glitterfarger-6x45ml");
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
$text curl_exec($ch);

$testBild strpos($text"http://cdn2.skapamer.se/img/10/8a/94/26/17x17/tillfalligt-slut-hos-leverantor-leveranstid-okand-leveranstid.gif");
$testText strpos($text"1-3 vardagar");

if (
$textText !== false) {
    echo 
"TEST 1";
}

if (
$test2 !== false) {
    echo 
"TEST 2";
}


balloumattias 2016-10-21 15:28

Och ifall du inte har curl installerat på servern (vilket visserligen mer eller mindre är standard) kan du ersätta rad 2-4 med:
$text = file_get_contents("http://www.skapamer.se/glitterfarger-6x45ml");

xciso 2016-10-21 17:29

Citat:

Ursprungligen postat av SvanteH (Inlägg 20520532)
http://php.net/manual/en/function.strpos.php

strpos är en funktion där första parametern (i ditt fall $text) är var den kommer leta i. Den kommer i ditt fall leta i källkoden som curl_exec() gav dig. Andra parametern (i ditt fall "1-3 vardagar") är vad den kommer leta i $text efter.

Värt att nämna är att strpos svarar med ett nummer så Kruger's förslag kan ge felaktiga resultat. För att kolla om inget är hittat gör du genom !== som betyder "x är INTE* falskt" * och då det finns två == betyder det att det exakt matchas. Du behöver inte veta så djupt ännu men bra att veta.

Exempel med text och "bild". Nu söker den i källkoden efter bildens url

PHP-kod:

<?php

$ch 
curl_init("http://www.skapamer.se/glitterfarger-6x45ml");
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
$text curl_exec($ch);

$testBild strpos($text"http://cdn2.skapamer.se/img/10/8a/94/26/17x17/tillfalligt-slut-hos-leverantor-leveranstid-okand-leveranstid.gif");
$testText strpos($text"1-3 vardagar");

if (
$textText !== false) {
    echo 
"TEST 1";
}

if (
$test2 !== false) {
    echo 
"TEST 2";
}


Tack för svar. men nu en motfråga. Det står "if ($textText !== false) {" borde det inte vara testText där?

xciso 2016-10-21 17:51

Citat:

Ursprungligen postat av xciso (Inlägg 20520548)
Tack för svar. men nu en motfråga. Det står "if ($textText !== false) {" borde det inte vara testText där?

Uppar igen.
Kod:

($test1!==true) {
Om jag kör med ! tecken så visar den felaktigt.

Kör jag istället såhär
Kod:

($test1 ==true) {
så visas det rätt.
Varför?

Kimppa 2016-10-23 10:54

Citat:

Ursprungligen postat av xciso (Inlägg 20520550)
Uppar igen.
Kod:

($test1!==true) {
Om jag kör med ! tecken så visar den felaktigt.

Kör jag istället såhär
Kod:

($test1 ==true) {
så visas det rätt.
Varför?

Skriver du koden utan mellanslag eller är det bara ett exempel?

!== jämför om en variabel INTE är densamma som en annan variabel och av samma typ (dvs boolean, string eller int, m.m.). Någon får gärna bekräfta.

!= jämfor om en variabel INTE är densamma som en annan (oberoende av typ)

Kanske hjälper?


Alla tider är GMT +2. Klockan är nu 05:08.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson