Bir sembolün ilk görünümünü yakın numarasını bulmak

4 Cevap
<?php
$url = 'here i give a url';

$raw = file_get_contents($url);

preg_match('/\w(\d*).*?\$/',$raw,$matches);


echo $matches;
?>

a external website I the closest number first appearance, bir sembolün gerekir verilen burada sembolüdür Doları

bu ben sadece basılı "dizi" olsun şimdi denedim ne

4 Cevap

Eğer ben aşağıdaki giriş verilmiş, sorunuzu doğru yorumlama am:

<div>
   <span>12.92$</span>
   <span>24.82$</span>
</div>

geri 12.92 $ almak istiyor? Yani Eğer bir web sitesinden bir miktar para ilk geçtiği istiyorsun?

Eğer öyleyse, aşağıdakileri deneyin:

// Will find any number on the form xyz.abc.
// Will NOT cope with formatting such as 12 523.25 or 12,523.25
$regex = '/(\d+(:?.\d+)?) *([$])/'
preg_match($regex, $website, $matches);

//matches[0] => 123.45$
//matches[1] => 123.45
//matches[2] => $

(Daha sık başarısız olabilir) başka, daha iddialı deneyin olacaktır:

// Will find any number on the form xyz.abc.
// Attempts to cope with formatting such as 12 523.25 or 12,523.25
$regex = '/(\d{1,3}(:?[, ]?\d{3})*(:?.\d+)?) *([$])/'
preg_match($regex, $website, $matches);

//matches[0] => 12 233.45$
//matches[1] => 12 233.45
//matches[2] => $

basılı dizi alırsanız> [0] echo $ sonuç çalışın; veya echo $ maçı [1];

/ / Update

// test2.php lkadf $ lksajdf;

// test.php

$url = 'test2.php';
$raw = file_get_contents($url);

preg_match('/\w(\d*).*?\$/',$raw,$matches);

echo $matches[0]; ?>

Çıktısı:

lkadf $ (ilk bölüm).

$ Maçı [1] ile gebelik maç kullanın, ama için regex değiştirmek gerekir

preg_match('/\w(\d+).*?\$/',$raw,$matches);

Gerçekten en az bir rakam istediğinizde *, sıfır veya daha fazla kez eşleşir. Eğer bir veya daha fazla maç yüzden + olarak değiştirin.

$regex = '/([$])* (\d+(:?.\d+)?)    /' ;
preg_match($regex, $str, $matches);

ben sadece 199 $ taraf değiştirdi çalışıyor!

şimdi ben de sadece ikinci apearance almak için bir seçenek gerekiyor:

code .....
$199 ......

....
$299
....

karşılaşmalar [2] 299 basmalı