Autor Zpráva
misisnik
Profil
Cau potřebuji vědět jak zjistím pomocí pre_match co je mezi tmto scriptem :

<h1 style='font-size: 18px;font-weight:bold;color: #000000;font-family: Tahoma;display:inline'>co je tady ..</h1>

Pak bych to dal do promene jako ten upravenej kod jako $najit

preg_match($najit,$vystup,$cil);
echo $cil[1]; 


Předem díky za odpověď
Keeehi
Profil
co je tady nahraď za (.*?)
misisnik
Profil
a nic se nedeje :) kdys nahradim ..
mam to takhle a nic se neděje :

$najit="<h1 style='font-size: 18px;font-weight:bold;color: #000000;font-family: Tahoma;display:inline'>(.*?)</h1>";
preg_match($najit,$vystup,$cil);
echo $cil[1];   
Keeehi
Profil
$najit="/<h1 style='font-size: 18px;font-weight:bold;color: #000000;font-family: Tahoma;display:inline'>(.*?)<\/h1>/";
preg_match($najit,$vystup,$cil);
var_dump($cil);
misisnik
Profil
no ted uz se vypise ale tohle
array(0) { } 
Keeehi
Profil
Funguje to.
$vystup="th<h1 style='font-size: 18px;font-weight:bold;color: #000000;font-family: Tahoma;display:inline'>textg fh</h1>rth";

$najit="/<h1 style='font-size: 18px;font-weight:bold;color: #000000;font-family: Tahoma;display:inline'>(.*?)<\/h1>/";
preg_match($najit,$vystup,$cil);
echo $cil[1];
AM_
Profil
preg_match('~<h1 style=\'font-size: 18px;font-weight:bold;color: #000000;font-family: Tahoma;display:inline\'>(.*?)</h1>~',$vystup,$cil);

takhle by to mohlo jít. Pokud je to jediný h1 na stránce, dá se to zjednodušit:

preg_match('~<h1[^>]*>(.*?)</h1>~',$vystup,$cil);
misisnik
Profil
nemam .. mam to řešene takto
$url= "odkaz";
$ch = curl_init($url);


curl_setopt ($ch, CURLOPT_HEADER, 0);


curl_setopt($ch,CURLOPT_POST,1);


curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);


curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


$vystup = curl_exec ($ch);
curl_close ($ch);


$najit="/<h1 style='font-size: 18px;font-weight:bold;color: #000000;font-family: Tahoma;display:inline'>(.*?)<\/h1>/";
preg_match($najit,$vystup,$cil);
echo $cil[1];


Ten odkaz je jen příklad ... naště se stránka do proměné a hledá to v to kodu v te proměné
misisnik
Profil
AM:
No to by slo ale ja ybhc potreboval toho potom vice najit a to bude podle specifikaci celych .. cirou nahodou tam je jen 1x h1 :) ale potřeoval bych to tak jak sem to psal ...

edit : když použiju tohle :
preg_match('~title>(.*?)</title>~',$vystup,$cil);

tak mi to titulek vypíše
Keeehi
Profil
AM:
preg_match('~<h1[^>]*>(.*?)</h1>~',$vystup,$cil);
A co když ve vstupu bude např.: <h1 onclick="alert('>');">drg</h1>?

misisnik:
[#6] funguje
misisnik
Profil
Keeehi:
ano [#6] funguje .. ale ja potřebuju, aby se hledalo v te promene co jsem si nasel a vlozi do toho tu straku tak je $vystup a to uz nejde
AM_
Profil
Keeehi:
A co když ve vstupu bude např.: <h1 onclick="alert('>');">drg</h1>?
nepředpokládal bych, že autoři CSFD se budou snažit hackovat misisnikův skript.

[#9] misisnik
je to celé o regulárních výrazech, asi se je budeš muset trochu naučit, vždycky je to maličko magie - někde ti uteče neoescapovaný znak nebo tak...
případně se to dá dělat přes různé DOM HTML parsery, což je možná i vhodnější, než lámat to přes reguláry,
misisnik
Profil
na tom csfd to je jedn příklad ...( neberte ze z tama chci "kopirovat" )
takže co .jak to mám udělat kukal sem do goglu amoc sem o tom nenasel :(
Keeehi
Profil
misisnik:
ale ja potřebuju, aby se hledalo v te promene co jsem si nasel a vlozi do toho tu straku tak je $vystup a to uz nejde
V tom případě se <h1 style='font-size: 18px;font-weight:bold;color: #000000;font-family: Tahoma;display:inline'>co je tady ..</h1> na stránce nevyskytuje.

Ono se to tam doopravdy nevyskytuje neboť je tam 1 důležité ale. Pokud se má vyhledávat na VÍCE ŘÁDCÍCH musí se na konec výrazu napsat s.
$najit="/<h1 style='font-size: 18px;font-weight:bold;color: #000000;font-family: Tahoma;display:inline'>(.*?)<\/h1>/s";

AM:
To bylo teoretické, pokud by to použil i na jiné vyhledávání třeba někde v odkazu, tak tam by se klidně kus JS vyskytnout mohl. Jen teoreticky, csfd jsem nezkoumal.
misisnik
Profil
heh mockrat děkuju .. takove S a co to dokaze .. mockrat diky všem za pomoc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0