Php 返回下划线的简单HTML DOM
好的,我使用简单的HTMLDOM()从页面获取一些数据 我想获得的数据是以下选择器选项:Php 返回下划线的简单HTML DOM,php,html,Php,Html,好的,我使用简单的HTMLDOM()从页面获取一些数据 我想获得的数据是以下选择器选项: <select name="element" class="selectbox"> <option value="1">O18FB-B1</option> <option value="2">O18FB-B2</option> <optio
<select name="element" class="selectbox">
<option value="1">O18FB-B1</option>
<option value="2">O18FB-B2</option>
<option value="3">O18FB-D1</option>
<option value="4">O18FB-D2</option>
<option value="5">O19BA-B</option>
<option value="6">O19BA-C1</option>
<option value="7">O19BA-C2</option>
<option value="8">O19FAMA</option>
<option value="9">O20BA-D1</option>
<option value="10">O20BA-D2</option>
<option value="11">O20BA-E1</option>
<option value="12">O20BA-E2</option>
<option value="13">O20FAMA1</option>
<option value="14">O20FAMA2</option>
<option value="15">O20FAMB1</option>
<option value="16">O20FAMB2</option>
<option value="17">O18AO-A</option>
<option value="18">O18IB-A</option>
<option value="19">O19AO-A</option>
<option value="20">O19IB-A</option>
<option value="21">O19MBIA</option>
<option value="22">O20AMTA</option>
<option value="23">O20EITA</option>
<option value="24">O20EITB</option>
<option value="25">O20SD-A</option>
<option value="26">O20SD-B</option>
<option value="27">O20SD-C</option>
<option value="28">O18JD-A</option>
<option value="29">O18JD-B</option>
<option value="30">O18JD-C</option>
<option value="31">O19JD-A</option>
<option value="32">O19JD-B</option>
<option value="33">O19JD-C</option>
<option value="34">O20JD-A</option>
<option value="35">O20JD-B</option>
<option value="36">O20JD-C</option>
<option value="37">O18MMCA</option>
<option value="38">O18MMCB</option>
<option value="39">O19MFAA</option>
<option value="40">O19MMCA</option>
<option value="41">O19MMCB</option>
<option value="42">O19MSRA</option>
<option value="43">O20MMCA</option>
<option value="44">O20MMCB</option>
<option value="45">O20MMCC</option>
<option value="46">O20OABA</option>
<option value="47">O20OABB</option>
<option value="48">O18OMSA</option>
<option value="49">O19OMSA</option>
<option value="50">O20OMSA</option>
<option value="51">O20OMSB</option>
<option value="52">O18CT</option>
<option value="53">O19CT</option>
<option value="54">O20CT</option>
</select>
然后使用以下代码将其显示在我的页面上:
$options = new GetOptions();
$classes = $options->getClasses();
foreach ($classes as $class) {
$optionFormat = '<option value="%s">%s</option>';
$optionValue = $class->value;
$optionText = $class->plaintext;
echo sprintf($optionFormat, $optionValue, $optionText);
}
$options=new GetOptions();
$classes=$options->getClasses();
foreach($classes作为$class){
$optionFormat='%s';
$optionValue=$class->value;
$optionText=$class->纯文本;
echo sprintf($optionFormat、$optionValue、$optionText);
}
但当我查看我的页面时,我得到的是(字面上是从chrome inspect元素复制的):
________________________
有人知道我做错了什么吗?我已经看了页面,没有包含此内容的select元素。。。提前感谢。您的代码是正确的,但没有数据 请查看您的页面来源。不是在inspector中,而是最初进入浏览器的原始源代码。在chrome中,您可以在windows(查看源代码)上使用
ctrl+u
。这样,您将看到您请求的页面在浏览器中的htmlselect
item中不包含任何值。这些值稍后会用javascript函数填充,但不幸的是,简单HTMLDOM不运行javascript,因此无法使用此库进行刮取
您需要寻找能够运行javascript的东西。也许可以选择一些无头浏览器。如果您需要坚持使用PHP,可以从以下内容开始:或此处:尝试使用以下内容:
echo'$类->纯文本。“代码>(注释掉该foreach中的其余部分)…感谢您的注释,但是,这给出了相同的结果<代码>\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?不知何故,我在问题中完全忽略了这一点。
$options = new GetOptions();
$classes = $options->getClasses();
foreach ($classes as $class) {
$optionFormat = '<option value="%s">%s</option>';
$optionValue = $class->value;
$optionText = $class->plaintext;
echo sprintf($optionFormat, $optionValue, $optionText);
}
<select name="class" class="selector w-full block border border-gray-400 rounded-lg p-3 outline-none">
________________________ </select>