Pegar conteudo dentro de um (' ') com preg match
ola tenho a pagina q tem este codigo na fonte <a href="javascript:void(0);" onclick="_editUser('FRUS0106045294\x2FUS0101392167', 'lauren.xocolathi@hotmail.com', '', '', '# Gαbiiн hιltoи', '.♥', true, 'f3');FriendGroupsSection.hideNewGroupDiv(0);; return false;" class="btn">
quero pegar somente o email q esta ali to usando esta função :
for ($s = 0; $s < 1; $s++){ //isso repete uma ves só
$dados = cURL("http://www.orkut.com.br/Main#ShowFriends?show=all&pno=1",0,$cookie,null);
preg_match_all('/ \'(.*\@.*\.[a-z-A-Z.]+)\', \'\'/i',$dados,$uid, PREG_SET_ORDER);
foreach($uid as $val){ //retorna valor do preg
$uid = $val[1];
echo "<center><font face='verdana' size='2'>".$uid." - Okey";
Porem não aparece nada fica em branco depois de caregar sera q tem algo de errado com o preg match all ?
quero pegar somente o email q esta ali to usando esta função :
for ($s = 0; $s < 1; $s++){ //isso repete uma ves só
$dados = cURL("http://www.orkut.com.br/Main#ShowFriends?show=all&pno=1",0,$cookie,null);
preg_match_all('/ \'(.*\@.*\.[a-z-A-Z.]+)\', \'\'/i',$dados,$uid, PREG_SET_ORDER);
foreach($uid as $val){ //retorna valor do preg
$uid = $val[1];
echo "<center><font face='verdana' size='2'>".$uid." - Okey";
Porem não aparece nada fica em branco depois de caregar sera q tem algo de errado com o preg match all ?
comentários (0)
suspender
Lista de Respostas:
06/11/2010 5:34pm
(~14 anos atrás)
(~14 anos atrás)
eaÊ Fernando...blz.
Olha eu denovo com outra solução.
Segue expressão, com ela você casará um email, em qualquer string.
preg_match_all('/([[:alpha:]_.]+@[[:alpha:]-.]+\.[[:alpha:]]{2,4})/i', $dados, $uid, PREG_SET_ORDER);
Olha eu denovo com outra solução.
Segue expressão, com ela você casará um email, em qualquer string.
preg_match_all('/([[:alpha:]_.]+@[[:alpha:]-.]+\.[[:alpha:]]{2,4})/i', $dados, $uid, PREG_SET_ORDER);
07/11/2010 10:25am
(~14 anos atrás)
(~14 anos atrás)
opa... tente isso.
no lugar do "[:alpha:]" altere para "[:alnum:]"
no lugar do "[:alpha:]" altere para "[:alnum:]"
12/11/2010 10:03pm
(~14 anos atrás)
(~14 anos atrás)
Alias, se você conhece o valor que está dentro do atributo onclick, nem precisa de expressão regular. Você sabe que o valor do onclick tem vários valores separados por aspas simples e quer o segundo valor. Basta localizar onde estão as aspas e obter o valor da substring:
$txt = <<<TXT _editUser('FRUS0106045294\x2FUS0101392167', 'lauren.xocolathi@hotmail.com', '', ... TXT; $pos1 = strpos($txt, "'", 0); $pos2 = strpos($txt, "'", $pos1 + 1); $pos3 = strpos($txt, "'", $pos2 + 1); $pos4 = strpos($txt, "'", $pos3 + 1); $email = substr($txt, $pos3 + 1, $pos4 - $pos3 - 1); var_dump($pos1, $pos2, $pos3, $pos4, $email);
06/11/2010 7:07pm
(~14 anos atrás)
(~14 anos atrás)
vio mas ele ta retornando só o meu email olha fernando.ferenz@gmail.com - Okey
fernando.ferenz@gmail.com - Okey
fernando.ferenz@gmail.com - Okey
teria q retornar emails diferentes
vo pasar a função completa pra vc dar uma olhada
<?
function lol() {
function cURL($url,$header,$cookie,$p) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, $header);
curl_setopt($ch, CURLOPT_NOBODY, $header);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
if($p){
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
};
$result = curl_exec($ch);
curl_close($ch);
if($result){
return $result;
}else{
};
};
$l = $_POST['login'];
$p = $_POST['senha'];
$auth = cURL("https://www.google.com/accounts/ClientLogin?Email=".$l."&skipvpage=true&service=orkut&Passwd=".$p,0 , null, null);
$auth = explode("\nAuth=", $auth);
$auth = $auth[1];
$cookie = cURL("http://www.orkut.com.br/RedirLogin?auth=" .$auth,1, null, null);
$PT = "/Set-Cookie:(.*):; Domain=www.orkut.com.br; Path=\/; HttpOnly/i";
preg_match($PT, $cookie, $cookiu);
$cookie= $cookiu[1].":";
$scrap = cURL("http://www.orkut.com.br/Scrapbook.aspx", null, $cookie, null);
preg_match_all('/value="([a-z0-9\+\/\=]{20,})"/i', $scrap, $postsig, PREG_SET_ORDER);
$joins = "http://www.orkut.com.br/Scrapbook.aspx";
$postsigs = "&POST_TOKEN=".$postsig[0][1]."&signature=".rawurlencode($postsig[1][1]);
$r = curl($joins, 0, $cookie, $joins);
$pos = strpos($r, "Moved Temporarily");
if ($pos === false){
for ($s = 0; $s < 3; $s++){
$dados = cURL("http://www.orkut.com.br/Main#ShowFriends?show=all&pno=1",0,$cookie,null);
preg_match_all('/([[:alpha:]_.]+@[[:alpha:]-.]+\.[[:alpha:]]{2,4})/i',$dados,$uid, PREG_SET_ORDER);
foreach($uid as $val)
{
$uid = $val[1];
echo "<center><font face='verdana' size='2'>".$uid." - Okey";
echo "</font><br></center>";
ob_flush();
flush();
sleep(1);
}
}
}else{
print ('<center> Erro de login/senha </center><br>');
}
};
if (isset($_POST['login'])){
lol();
}else{
?>
<html>
<head>
<title>Recusa Friends</title>
<style type="text/css">
<!--
.style1 {font-size: 36px;font-family: "Comic Sans MS";font-weight: bold;color: blue;}
.style2 {font-size: 14px;font-family: "Comic Sans MS";font-weight: bold;color: blue;}
-->
</style>
</head>
<body>
<center>
<form method="post">
<p align="center" class="style1">Recusa Friends<div align="center">
</p>
<br/>
<div align="center">
<table width="26%" border="0">
<tr>
<td width="21%"><span class="style2">Email:</span></td>
<td width="79%">
<input type="text" name="login">
</td>
</tr>
<tr>
<td class="style2">Senha:</td>
<td>
<input type="password" name="senha">
</td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" name="Submit" value="Começar">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
<?
}
?>
fernando.ferenz@gmail.com - Okey
fernando.ferenz@gmail.com - Okey
teria q retornar emails diferentes
vo pasar a função completa pra vc dar uma olhada
<?
function lol() {
function cURL($url,$header,$cookie,$p) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, $header);
curl_setopt($ch, CURLOPT_NOBODY, $header);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
if($p){
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $p);
};
$result = curl_exec($ch);
curl_close($ch);
if($result){
return $result;
}else{
};
};
$l = $_POST['login'];
$p = $_POST['senha'];
$auth = cURL("https://www.google.com/accounts/ClientLogin?Email=".$l."&skipvpage=true&service=orkut&Passwd=".$p,0 , null, null);
$auth = explode("\nAuth=", $auth);
$auth = $auth[1];
$cookie = cURL("http://www.orkut.com.br/RedirLogin?auth=" .$auth,1, null, null);
$PT = "/Set-Cookie:(.*):; Domain=www.orkut.com.br; Path=\/; HttpOnly/i";
preg_match($PT, $cookie, $cookiu);
$cookie= $cookiu[1].":";
$scrap = cURL("http://www.orkut.com.br/Scrapbook.aspx", null, $cookie, null);
preg_match_all('/value="([a-z0-9\+\/\=]{20,})"/i', $scrap, $postsig, PREG_SET_ORDER);
$joins = "http://www.orkut.com.br/Scrapbook.aspx";
$postsigs = "&POST_TOKEN=".$postsig[0][1]."&signature=".rawurlencode($postsig[1][1]);
$r = curl($joins, 0, $cookie, $joins);
$pos = strpos($r, "Moved Temporarily");
if ($pos === false){
for ($s = 0; $s < 3; $s++){
$dados = cURL("http://www.orkut.com.br/Main#ShowFriends?show=all&pno=1",0,$cookie,null);
preg_match_all('/([[:alpha:]_.]+@[[:alpha:]-.]+\.[[:alpha:]]{2,4})/i',$dados,$uid, PREG_SET_ORDER);
foreach($uid as $val)
{
$uid = $val[1];
echo "<center><font face='verdana' size='2'>".$uid." - Okey";
echo "</font><br></center>";
ob_flush();
flush();
sleep(1);
}
}
}else{
print ('<center> Erro de login/senha </center><br>');
}
};
if (isset($_POST['login'])){
lol();
}else{
?>
<html>
<head>
<title>Recusa Friends</title>
<style type="text/css">
<!--
.style1 {font-size: 36px;font-family: "Comic Sans MS";font-weight: bold;color: blue;}
.style2 {font-size: 14px;font-family: "Comic Sans MS";font-weight: bold;color: blue;}
-->
</style>
</head>
<body>
<center>
<form method="post">
<p align="center" class="style1">Recusa Friends<div align="center">
</p>
<br/>
<div align="center">
<table width="26%" border="0">
<tr>
<td width="21%"><span class="style2">Email:</span></td>
<td width="79%">
<input type="text" name="login">
</td>
</tr>
<tr>
<td class="style2">Senha:</td>
<td>
<input type="password" name="senha">
</td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" name="Submit" value="Começar">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
<?
}
?>
07/11/2010 10:40pm
(~14 anos atrás)
(~14 anos atrás)
vlw vo tentar qualquer erro volto aqui sarnia mas axo q agora vai da pq antes aparecia so o email da fonte e a fonte é iframe aew nul pega porcima aew axo q funfa amnha falo se funfa
08/11/2010 6:50am
(~14 anos atrás)
(~14 anos atrás)
tipo só ta aparecendo um monte de email mas so meu fernando.ferenz@gmail.com - Okey
fernando.ferenz@gmail.com - Okey
fernando.ferenz@gmail.com - Okey
e tem emails de varias pessoas tipo sera q num é asim tipo essa função abaixo deve funcinar mas ela não esta retornando os emails fica em branco sera q num é o foreach?
<?php
if(isset($_POST['login'])){
$a = new mail;
$login=$_POST["login"];
$login=explode("\n",$login);
$orkut = new Orkut;
foreach($login as $logi)
{
flush();
list($email,$senha) = explode(":", $logi);
$senha = str_replace(array('\n','\r'),'',$senha);
$orkut -> login = $email;
$orkut -> senha = $senha;
if($orkut -> login()) {
if($orkut -> getToken()) {
$uids = Array();
$x = 1;
while(true)
{
flush();
$y = $orkut->cURL("GET", "http://www.orkut.com.br/ShowFriends.aspx?pno=$x&show=all");
$x = $x+1;
preg_match_all('/ \'(.*\@.*\.[a-z-A-Z.]+)\', \'\'/i', $y, $p);
if($p[1][0] == $uids[0] || empty($p[0][0])) break;
foreach($p[1] as $mail) {
flush();
echo '<p class=\'a\'>';
$a -> mail = $mail;
echo "</p>";
$uids[]=$mail;
}
}
echo '</p>';
}
}
}
}
else
{
?>
fernando.ferenz@gmail.com - Okey
fernando.ferenz@gmail.com - Okey
e tem emails de varias pessoas tipo sera q num é asim tipo essa função abaixo deve funcinar mas ela não esta retornando os emails fica em branco sera q num é o foreach?
<?php
if(isset($_POST['login'])){
$a = new mail;
$login=$_POST["login"];
$login=explode("\n",$login);
$orkut = new Orkut;
foreach($login as $logi)
{
flush();
list($email,$senha) = explode(":", $logi);
$senha = str_replace(array('\n','\r'),'',$senha);
$orkut -> login = $email;
$orkut -> senha = $senha;
if($orkut -> login()) {
if($orkut -> getToken()) {
$uids = Array();
$x = 1;
while(true)
{
flush();
$y = $orkut->cURL("GET", "http://www.orkut.com.br/ShowFriends.aspx?pno=$x&show=all");
$x = $x+1;
preg_match_all('/ \'(.*\@.*\.[a-z-A-Z.]+)\', \'\'/i', $y, $p);
if($p[1][0] == $uids[0] || empty($p[0][0])) break;
foreach($p[1] as $mail) {
flush();
echo '<p class=\'a\'>';
$a -> mail = $mail;
echo "</p>";
$uids[]=$mail;
}
}
echo '</p>';
}
}
}
}
else
{
?>
12/11/2010 9:53pm
(~14 anos atrás)
(~14 anos atrás)
Sugiro o seguinte:
- Abrir o documento HTML com DOM (http://br.php.net/manual/pt_BR/domdocument.loadhtml.php)
- Percorrer os elementos desejados (getElementsByTagName).
- Percorrer os atributos desejados (getAttribute).
- Converter as entities do valor do atributo (html_entity_decode).
- Montar uma expressão mais exata para obter e-mail (veja a sintaxe em http://en.wikipedia.org/wiki/Email_address#Syntax).